From 27591ed40bf88b62455fc9cd8ce0ee6b3230da76 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Thu, 2 Dec 2021 10:13:58 +0100 Subject: [PATCH] pgcrypto: Remove explicit hex encoding/decoding from tests This was from before the hex format was available in bytea. Now we can remove the extra explicit encoding/decoding calls and rely on the default output format. --- contrib/pgcrypto/expected/3des.out | 74 +++--- contrib/pgcrypto/expected/blowfish.out | 221 ++++++++---------- contrib/pgcrypto/expected/blowfish_1.out | 85 +++---- contrib/pgcrypto/expected/cast5.out | 87 +++---- contrib/pgcrypto/expected/cast5_1.out | 35 +-- contrib/pgcrypto/expected/des.out | 61 +++-- contrib/pgcrypto/expected/des_1.out | 21 +- contrib/pgcrypto/expected/hmac-md5.out | 86 +++---- contrib/pgcrypto/expected/hmac-sha1.out | 86 +++---- contrib/pgcrypto/expected/init.out | 15 -- contrib/pgcrypto/expected/md5.out | 56 ++--- contrib/pgcrypto/expected/pgp-armor.out | 30 ++- contrib/pgcrypto/expected/pgp-decrypt.out | 55 ++--- contrib/pgcrypto/expected/pgp-decrypt_1.out | 55 ++--- contrib/pgcrypto/expected/pgp-encrypt.out | 30 ++- .../pgcrypto/expected/pgp-pubkey-encrypt.out | 10 +- contrib/pgcrypto/expected/rijndael.out | 157 ++++++------- contrib/pgcrypto/expected/sha1.out | 56 ++--- contrib/pgcrypto/expected/sha2.out | 176 +++++++------- contrib/pgcrypto/sql/3des.sql | 28 +-- contrib/pgcrypto/sql/blowfish.sql | 91 +++----- contrib/pgcrypto/sql/cast5.sql | 35 +-- contrib/pgcrypto/sql/des.sql | 21 +- contrib/pgcrypto/sql/hmac-md5.sql | 44 ++-- contrib/pgcrypto/sql/hmac-sha1.sql | 44 ++-- contrib/pgcrypto/sql/init.sql | 7 - contrib/pgcrypto/sql/md5.sql | 14 +- contrib/pgcrypto/sql/pgp-armor.sql | 14 +- contrib/pgcrypto/sql/pgp-decrypt.sql | 25 +- contrib/pgcrypto/sql/pgp-encrypt.sql | 14 +- contrib/pgcrypto/sql/pgp-pubkey-encrypt.sql | 6 +- contrib/pgcrypto/sql/rijndael.sql | 75 +++--- contrib/pgcrypto/sql/sha1.sql | 14 +- contrib/pgcrypto/sql/sha2.sql | 44 ++-- 34 files changed, 820 insertions(+), 1052 deletions(-) diff --git a/contrib/pgcrypto/expected/3des.out b/contrib/pgcrypto/expected/3des.out index 8983a73b8a..ee15489877 100644 --- a/contrib/pgcrypto/expected/3des.out +++ b/contrib/pgcrypto/expected/3des.out @@ -1,70 +1,64 @@ -- -- 3DES cipher -- --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; -- test vector from somewhere -SELECT encode(encrypt( -decode('80 00 00 00 00 00 00 00', 'hex'), -decode('01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01', 'hex'), -'3des-ecb/pad:none'), 'hex'); - encode ------------------- - 95f8a5e5dd31d900 +SELECT encrypt('\x8000000000000000', + '\x010101010101010101010101010101010101010101010101', + '3des-ecb/pad:none'); + encrypt +-------------------- + \x95f8a5e5dd31d900 (1 row) --- val 95 F8 A5 E5 DD 31 D9 00 -select encode( encrypt('', 'foo', '3des'), 'hex'); - encode ------------------- - 752111e37a2d7ac3 +select encrypt('', 'foo', '3des'); + encrypt +-------------------- + \x752111e37a2d7ac3 (1 row) -- 10 bytes key -select encode( encrypt('foo', '0123456789', '3des'), 'hex'); - encode ------------------- - d2fb8baa1717cb02 +select encrypt('foo', '0123456789', '3des'); + encrypt +-------------------- + \xd2fb8baa1717cb02 (1 row) -- 22 bytes key -select encode( encrypt('foo', '0123456789012345678901', '3des'), 'hex'); - encode ------------------- - a44360e699269817 +select encrypt('foo', '0123456789012345678901', '3des'); + encrypt +-------------------- + \xa44360e699269817 (1 row) -- decrypt -select decrypt(encrypt('foo', '0123456', '3des'), '0123456', '3des'); - decrypt ---------- +select encode(decrypt(encrypt('foo', '0123456', '3des'), '0123456', '3des'), 'escape'); + encode +-------- foo (1 row) -- iv -select encode(encrypt_iv('foo', '0123456', 'abcd', '3des'), 'hex'); - encode ------------------- - 50735067b073bb93 +select encrypt_iv('foo', '0123456', 'abcd', '3des'); + encrypt_iv +-------------------- + \x50735067b073bb93 (1 row) -select decrypt_iv(decode('50735067b073bb93', 'hex'), '0123456', 'abcd', '3des'); - decrypt_iv ------------- +select encode(decrypt_iv('\x50735067b073bb93', '0123456', 'abcd', '3des'), 'escape'); + encode +-------- foo (1 row) -- long message -select encode(encrypt('Lets try a longer message.', '0123456789012345678901', '3des'), 'hex'); - encode ------------------------------------------------------------------- - b71e3422269d0ded19468f33d65cd663c28e0871984792a7b3ba0ddcecec8d2c +select encrypt('Lets try a longer message.', '0123456789012345678901', '3des'); + encrypt +-------------------------------------------------------------------- + \xb71e3422269d0ded19468f33d65cd663c28e0871984792a7b3ba0ddcecec8d2c (1 row) -select decrypt(encrypt('Lets try a longer message.', '0123456789012345678901', '3des'), '0123456789012345678901', '3des'); - decrypt +select encode(decrypt(encrypt('Lets try a longer message.', '0123456789012345678901', '3des'), '0123456789012345678901', '3des'), 'escape'); + encode ---------------------------- Lets try a longer message. (1 row) diff --git a/contrib/pgcrypto/expected/blowfish.out b/contrib/pgcrypto/expected/blowfish.out index 72557ea161..f0346a7651 100644 --- a/contrib/pgcrypto/expected/blowfish.out +++ b/contrib/pgcrypto/expected/blowfish.out @@ -1,174 +1,141 @@ -- -- Blowfish cipher -- --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; -- some standard Blowfish testvalues -SELECT encode(encrypt( -decode('0000000000000000', 'hex'), -decode('0000000000000000', 'hex'), -'bf-ecb/pad:none'), 'hex'); - encode ------------------- - 4ef997456198dd78 -(1 row) - -SELECT encode(encrypt( -decode('ffffffffffffffff', 'hex'), -decode('ffffffffffffffff', 'hex'), -'bf-ecb/pad:none'), 'hex'); - encode ------------------- - 51866fd5b85ecb8a -(1 row) - -SELECT encode(encrypt( -decode('1000000000000001', 'hex'), -decode('3000000000000000', 'hex'), -'bf-ecb/pad:none'), 'hex'); - encode ------------------- - 7d856f9a613063f2 -(1 row) - -SELECT encode(encrypt( -decode('1111111111111111', 'hex'), -decode('1111111111111111', 'hex'), -'bf-ecb/pad:none'), 'hex'); - encode ------------------- - 2466dd878b963c9d -(1 row) - -SELECT encode(encrypt( -decode('0123456789abcdef', 'hex'), -decode('fedcba9876543210', 'hex'), -'bf-ecb/pad:none'), 'hex'); - encode ------------------- - 0aceab0fc6a0a28d -(1 row) - -SELECT encode(encrypt( -decode('01a1d6d039776742', 'hex'), -decode('fedcba9876543210', 'hex'), -'bf-ecb/pad:none'), 'hex'); - encode ------------------- - 3273b8badc9e9e15 -(1 row) - -SELECT encode(encrypt( -decode('ffffffffffffffff', 'hex'), -decode('0000000000000000', 'hex'), -'bf-ecb/pad:none'), 'hex'); - encode ------------------- - 014933e0cdaff6e4 +SELECT encrypt('\x0000000000000000', '\x0000000000000000', 'bf-ecb/pad:none'); + encrypt +-------------------- + \x4ef997456198dd78 +(1 row) + +SELECT encrypt('\xffffffffffffffff', '\xffffffffffffffff', 'bf-ecb/pad:none'); + encrypt +-------------------- + \x51866fd5b85ecb8a +(1 row) + +SELECT encrypt('\x1000000000000001', '\x3000000000000000', 'bf-ecb/pad:none'); + encrypt +-------------------- + \x7d856f9a613063f2 +(1 row) + +SELECT encrypt('\x1111111111111111', '\x1111111111111111', 'bf-ecb/pad:none'); + encrypt +-------------------- + \x2466dd878b963c9d +(1 row) + +SELECT encrypt('\x0123456789abcdef', '\xfedcba9876543210', 'bf-ecb/pad:none'); + encrypt +-------------------- + \x0aceab0fc6a0a28d +(1 row) + +SELECT encrypt('\x01a1d6d039776742', '\xfedcba9876543210', 'bf-ecb/pad:none'); + encrypt +-------------------- + \x3273b8badc9e9e15 +(1 row) + +SELECT encrypt('\xffffffffffffffff', '\x0000000000000000', 'bf-ecb/pad:none'); + encrypt +-------------------- + \x014933e0cdaff6e4 (1 row) -- setkey -SELECT encode(encrypt( -decode('fedcba9876543210', 'hex'), -decode('f0e1d2c3b4a5968778695a4b3c2d1e0f', 'hex'), -'bf-ecb/pad:none'), 'hex'); - encode ------------------- - 93142887ee3be15c +SELECT encrypt('\xfedcba9876543210', '\xf0e1d2c3b4a5968778695a4b3c2d1e0f', 'bf-ecb/pad:none'); + encrypt +-------------------- + \x93142887ee3be15c (1 row) -- with padding -SELECT encode(encrypt( -decode('01234567890123456789', 'hex'), -decode('33443344334433443344334433443344', 'hex'), -'bf-ecb'), 'hex'); - encode ----------------------------------- - 0d04a43a20456dee5ede6ed9e4dcaaa6 +SELECT encrypt('\x01234567890123456789', '\x33443344334433443344334433443344', 'bf-ecb'); + encrypt +------------------------------------ + \x0d04a43a20456dee5ede6ed9e4dcaaa6 (1 row) -- cbc -- 28 bytes key -SELECT encode(encrypt( -decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5', 'hex'), -decode('37363534333231204e6f77206973207468652074696d6520666f7220', 'hex'), -'bf-cbc'), 'hex'); - encode ------------------------------------------------------------------- - 4f2beb748c4f689ec755edb9dc252a41b93a3786850b4c75d6a702b6a8e48825 +SELECT encrypt('\x6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5', + '\x37363534333231204e6f77206973207468652074696d6520666f7220', + 'bf-cbc'); + encrypt +-------------------------------------------------------------------- + \x4f2beb748c4f689ec755edb9dc252a41b93a3786850b4c75d6a702b6a8e48825 (1 row) -- 29 bytes key -SELECT encode(encrypt( -decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc', 'hex'), -decode('37363534333231204e6f77206973207468652074696d6520666f722000', 'hex'), -'bf-cbc'), 'hex'); - encode ----------------------------------------------------------------------------------- - 3ea6357a0ee7fad6d0c4b63464f2aafa40c2e91b4b7e1bba8114932fd92b5c8f111e7e50e7b2e541 +SELECT encrypt('\x6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc', + '\x37363534333231204e6f77206973207468652074696d6520666f722000', + 'bf-cbc'); + encrypt +------------------------------------------------------------------------------------ + \x3ea6357a0ee7fad6d0c4b63464f2aafa40c2e91b4b7e1bba8114932fd92b5c8f111e7e50e7b2e541 (1 row) -- blowfish-448 -SELECT encode(encrypt( -decode('fedcba9876543210', 'hex'), -decode('f0e1d2c3b4a5968778695a4b3c2d1e0f001122334455667704689104c2fd3b2f584023641aba61761f1f1f1f0e0e0e0effffffffffffffff', 'hex'), -'bf-ecb/pad:none'), 'hex'); - encode ------------------- - c04504012e4e1f53 +SELECT encrypt('\xfedcba9876543210', + '\xf0e1d2c3b4a5968778695a4b3c2d1e0f001122334455667704689104c2fd3b2f584023641aba61761f1f1f1f0e0e0e0effffffffffffffff', + 'bf-ecb/pad:none'); + encrypt +-------------------- + \xc04504012e4e1f53 (1 row) --- result: c04504012e4e1f53 -- empty data -select encode(encrypt('', 'foo', 'bf'), 'hex'); - encode ------------------- - 1871949bb2311c8e +select encrypt('', 'foo', 'bf'); + encrypt +-------------------- + \x1871949bb2311c8e (1 row) -- 10 bytes key -select encode(encrypt('foo', '0123456789', 'bf'), 'hex'); - encode ------------------- - 42f58af3b2c03f46 +select encrypt('foo', '0123456789', 'bf'); + encrypt +-------------------- + \x42f58af3b2c03f46 (1 row) -- 22 bytes key -select encode(encrypt('foo', '0123456789012345678901', 'bf'), 'hex'); - encode ------------------- - 86ab6f0bc72b5f22 +select encrypt('foo', '0123456789012345678901', 'bf'); + encrypt +-------------------- + \x86ab6f0bc72b5f22 (1 row) -- decrypt -select decrypt(encrypt('foo', '0123456', 'bf'), '0123456', 'bf'); - decrypt ---------- +select encode(decrypt(encrypt('foo', '0123456', 'bf'), '0123456', 'bf'), 'escape'); + encode +-------- foo (1 row) -- iv -select encode(encrypt_iv('foo', '0123456', 'abcd', 'bf'), 'hex'); - encode ------------------- - 95c7e89322525d59 +select encrypt_iv('foo', '0123456', 'abcd', 'bf'); + encrypt_iv +-------------------- + \x95c7e89322525d59 (1 row) -select decrypt_iv(decode('95c7e89322525d59', 'hex'), '0123456', 'abcd', 'bf'); - decrypt_iv ------------- +select encode(decrypt_iv('\x95c7e89322525d59', '0123456', 'abcd', 'bf'), 'escape'); + encode +-------- foo (1 row) -- long message -select encode(encrypt('Lets try a longer message.', '0123456789', 'bf'), 'hex'); - encode ------------------------------------------------------------------- - a76059f7a1b627b5b84080d9beb337714c7a7f8b70300023e5feb6dfa6813536 +select encrypt('Lets try a longer message.', '0123456789', 'bf'); + encrypt +-------------------------------------------------------------------- + \xa76059f7a1b627b5b84080d9beb337714c7a7f8b70300023e5feb6dfa6813536 (1 row) -select decrypt(encrypt('Lets try a longer message.', '0123456789', 'bf'), '0123456789', 'bf'); - decrypt +select encode(decrypt(encrypt('Lets try a longer message.', '0123456789', 'bf'), '0123456789', 'bf'), 'escape'); + encode ---------------------------- Lets try a longer message. (1 row) diff --git a/contrib/pgcrypto/expected/blowfish_1.out b/contrib/pgcrypto/expected/blowfish_1.out index 565a0853cb..4d5ce1fb6e 100644 --- a/contrib/pgcrypto/expected/blowfish_1.out +++ b/contrib/pgcrypto/expected/blowfish_1.out @@ -1,95 +1,62 @@ -- -- Blowfish cipher -- --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; -- some standard Blowfish testvalues -SELECT encode(encrypt( -decode('0000000000000000', 'hex'), -decode('0000000000000000', 'hex'), -'bf-ecb/pad:none'), 'hex'); +SELECT encrypt('\x0000000000000000', '\x0000000000000000', 'bf-ecb/pad:none'); ERROR: encrypt error: Cipher cannot be initialized ? -SELECT encode(encrypt( -decode('ffffffffffffffff', 'hex'), -decode('ffffffffffffffff', 'hex'), -'bf-ecb/pad:none'), 'hex'); +SELECT encrypt('\xffffffffffffffff', '\xffffffffffffffff', 'bf-ecb/pad:none'); ERROR: encrypt error: Cipher cannot be initialized ? -SELECT encode(encrypt( -decode('1000000000000001', 'hex'), -decode('3000000000000000', 'hex'), -'bf-ecb/pad:none'), 'hex'); +SELECT encrypt('\x1000000000000001', '\x3000000000000000', 'bf-ecb/pad:none'); ERROR: encrypt error: Cipher cannot be initialized ? -SELECT encode(encrypt( -decode('1111111111111111', 'hex'), -decode('1111111111111111', 'hex'), -'bf-ecb/pad:none'), 'hex'); +SELECT encrypt('\x1111111111111111', '\x1111111111111111', 'bf-ecb/pad:none'); ERROR: encrypt error: Cipher cannot be initialized ? -SELECT encode(encrypt( -decode('0123456789abcdef', 'hex'), -decode('fedcba9876543210', 'hex'), -'bf-ecb/pad:none'), 'hex'); +SELECT encrypt('\x0123456789abcdef', '\xfedcba9876543210', 'bf-ecb/pad:none'); ERROR: encrypt error: Cipher cannot be initialized ? -SELECT encode(encrypt( -decode('01a1d6d039776742', 'hex'), -decode('fedcba9876543210', 'hex'), -'bf-ecb/pad:none'), 'hex'); +SELECT encrypt('\x01a1d6d039776742', '\xfedcba9876543210', 'bf-ecb/pad:none'); ERROR: encrypt error: Cipher cannot be initialized ? -SELECT encode(encrypt( -decode('ffffffffffffffff', 'hex'), -decode('0000000000000000', 'hex'), -'bf-ecb/pad:none'), 'hex'); +SELECT encrypt('\xffffffffffffffff', '\x0000000000000000', 'bf-ecb/pad:none'); ERROR: encrypt error: Cipher cannot be initialized ? -- setkey -SELECT encode(encrypt( -decode('fedcba9876543210', 'hex'), -decode('f0e1d2c3b4a5968778695a4b3c2d1e0f', 'hex'), -'bf-ecb/pad:none'), 'hex'); +SELECT encrypt('\xfedcba9876543210', '\xf0e1d2c3b4a5968778695a4b3c2d1e0f', 'bf-ecb/pad:none'); ERROR: encrypt error: Cipher cannot be initialized ? -- with padding -SELECT encode(encrypt( -decode('01234567890123456789', 'hex'), -decode('33443344334433443344334433443344', 'hex'), -'bf-ecb'), 'hex'); +SELECT encrypt('\x01234567890123456789', '\x33443344334433443344334433443344', 'bf-ecb'); ERROR: encrypt error: Cipher cannot be initialized ? -- cbc -- 28 bytes key -SELECT encode(encrypt( -decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5', 'hex'), -decode('37363534333231204e6f77206973207468652074696d6520666f7220', 'hex'), -'bf-cbc'), 'hex'); +SELECT encrypt('\x6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5', + '\x37363534333231204e6f77206973207468652074696d6520666f7220', + 'bf-cbc'); ERROR: encrypt error: Key was too big -- 29 bytes key -SELECT encode(encrypt( -decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc', 'hex'), -decode('37363534333231204e6f77206973207468652074696d6520666f722000', 'hex'), -'bf-cbc'), 'hex'); +SELECT encrypt('\x6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc', + '\x37363534333231204e6f77206973207468652074696d6520666f722000', + 'bf-cbc'); ERROR: encrypt error: Key was too big -- blowfish-448 -SELECT encode(encrypt( -decode('fedcba9876543210', 'hex'), -decode('f0e1d2c3b4a5968778695a4b3c2d1e0f001122334455667704689104c2fd3b2f584023641aba61761f1f1f1f0e0e0e0effffffffffffffff', 'hex'), -'bf-ecb/pad:none'), 'hex'); +SELECT encrypt('\xfedcba9876543210', + '\xf0e1d2c3b4a5968778695a4b3c2d1e0f001122334455667704689104c2fd3b2f584023641aba61761f1f1f1f0e0e0e0effffffffffffffff', + 'bf-ecb/pad:none'); ERROR: encrypt error: Key was too big --- result: c04504012e4e1f53 -- empty data -select encode(encrypt('', 'foo', 'bf'), 'hex'); +select encrypt('', 'foo', 'bf'); ERROR: encrypt error: Cipher cannot be initialized ? -- 10 bytes key -select encode(encrypt('foo', '0123456789', 'bf'), 'hex'); +select encrypt('foo', '0123456789', 'bf'); ERROR: encrypt error: Cipher cannot be initialized ? -- 22 bytes key -select encode(encrypt('foo', '0123456789012345678901', 'bf'), 'hex'); +select encrypt('foo', '0123456789012345678901', 'bf'); ERROR: encrypt error: Key was too big -- decrypt -select decrypt(encrypt('foo', '0123456', 'bf'), '0123456', 'bf'); +select encode(decrypt(encrypt('foo', '0123456', 'bf'), '0123456', 'bf'), 'escape'); ERROR: encrypt error: Cipher cannot be initialized ? -- iv -select encode(encrypt_iv('foo', '0123456', 'abcd', 'bf'), 'hex'); +select encrypt_iv('foo', '0123456', 'abcd', 'bf'); ERROR: encrypt_iv error: Cipher cannot be initialized ? -select decrypt_iv(decode('95c7e89322525d59', 'hex'), '0123456', 'abcd', 'bf'); +select encode(decrypt_iv('\x95c7e89322525d59', '0123456', 'abcd', 'bf'), 'escape'); ERROR: decrypt_iv error: Cipher cannot be initialized ? -- long message -select encode(encrypt('Lets try a longer message.', '0123456789', 'bf'), 'hex'); +select encrypt('Lets try a longer message.', '0123456789', 'bf'); ERROR: encrypt error: Cipher cannot be initialized ? -select decrypt(encrypt('Lets try a longer message.', '0123456789', 'bf'), '0123456789', 'bf'); +select encode(decrypt(encrypt('Lets try a longer message.', '0123456789', 'bf'), '0123456789', 'bf'), 'escape'); ERROR: encrypt error: Cipher cannot be initialized ? diff --git a/contrib/pgcrypto/expected/cast5.out b/contrib/pgcrypto/expected/cast5.out index c1ecd9197f..8a4da987ab 100644 --- a/contrib/pgcrypto/expected/cast5.out +++ b/contrib/pgcrypto/expected/cast5.out @@ -1,87 +1,72 @@ -- -- Cast5 cipher -- --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; -- test vectors from RFC2144 -- 128 bit key -SELECT encode(encrypt( -decode('01 23 45 67 89 AB CD EF', 'hex'), -decode('01 23 45 67 12 34 56 78 23 45 67 89 34 56 78 9A', 'hex'), -'cast5-ecb/pad:none'), 'hex'); - encode ------------------- - 238b4fe5847e44b2 +SELECT encrypt('\x0123456789ABCDEF', '\x0123456712345678234567893456789A', 'cast5-ecb/pad:none'); + encrypt +-------------------- + \x238b4fe5847e44b2 (1 row) --- result: 23 8B 4F E5 84 7E 44 B2 -- 80 bit key -SELECT encode(encrypt( -decode('01 23 45 67 89 AB CD EF', 'hex'), -decode('01 23 45 67 12 34 56 78 23 45', 'hex'), -'cast5-ecb/pad:none'), 'hex'); - encode ------------------- - eb6a711a2c02271b +SELECT encrypt('\x0123456789ABCDEF', '\x01234567123456782345', 'cast5-ecb/pad:none'); + encrypt +-------------------- + \xeb6a711a2c02271b (1 row) --- result: EB 6A 71 1A 2C 02 27 1B -- 40 bit key -SELECT encode(encrypt( -decode('01 23 45 67 89 AB CD EF', 'hex'), -decode('01 23 45 67 12', 'hex'), -'cast5-ecb/pad:none'), 'hex'); - encode ------------------- - 7ac816d16e9b302e +SELECT encrypt('\x0123456789ABCDEF', '\x0123456712', 'cast5-ecb/pad:none'); + encrypt +-------------------- + \x7ac816d16e9b302e (1 row) --- result: 7A C8 16 D1 6E 9B 30 2E -- cbc -- empty data -select encode( encrypt('', 'foo', 'cast5'), 'hex'); - encode ------------------- - a48bd1aabde4de10 +select encrypt('', 'foo', 'cast5'); + encrypt +-------------------- + \xa48bd1aabde4de10 (1 row) -- 10 bytes key -select encode( encrypt('foo', '0123456789', 'cast5'), 'hex'); - encode ------------------- - b07f19255e60cb6d +select encrypt('foo', '0123456789', 'cast5'); + encrypt +-------------------- + \xb07f19255e60cb6d (1 row) -- decrypt -select decrypt(encrypt('foo', '0123456', 'cast5'), '0123456', 'cast5'); - decrypt ---------- +select encode(decrypt(encrypt('foo', '0123456', 'cast5'), '0123456', 'cast5'), 'escape'); + encode +-------- foo (1 row) -- iv -select encode(encrypt_iv('foo', '0123456', 'abcd', 'cast5'), 'hex'); - encode ------------------- - 384a970695ce016a +select encrypt_iv('foo', '0123456', 'abcd', 'cast5'); + encrypt_iv +-------------------- + \x384a970695ce016a (1 row) -select decrypt_iv(decode('384a970695ce016a', 'hex'), - '0123456', 'abcd', 'cast5'); - decrypt_iv ------------- +select encode(decrypt_iv('\x384a970695ce016a', '0123456', 'abcd', 'cast5'), 'escape'); + encode +-------- foo (1 row) -- long message -select encode(encrypt('Lets try a longer message.', '0123456789', 'cast5'), 'hex'); - encode ------------------------------------------------------------------- - 04fcffc91533e1505dadcb10766d9fed0937818e663e402384e049942ba60fff +select encrypt('Lets try a longer message.', '0123456789', 'cast5'); + encrypt +-------------------------------------------------------------------- + \x04fcffc91533e1505dadcb10766d9fed0937818e663e402384e049942ba60fff (1 row) -select decrypt(encrypt('Lets try a longer message.', '0123456789', 'cast5'), '0123456789', 'cast5'); - decrypt +select encode(decrypt(encrypt('Lets try a longer message.', '0123456789', 'cast5'), '0123456789', 'cast5'), 'escape'); + encode ---------------------------- Lets try a longer message. (1 row) diff --git a/contrib/pgcrypto/expected/cast5_1.out b/contrib/pgcrypto/expected/cast5_1.out index e3b38dbce2..5acf7e4343 100644 --- a/contrib/pgcrypto/expected/cast5_1.out +++ b/contrib/pgcrypto/expected/cast5_1.out @@ -1,48 +1,33 @@ -- -- Cast5 cipher -- --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; -- test vectors from RFC2144 -- 128 bit key -SELECT encode(encrypt( -decode('01 23 45 67 89 AB CD EF', 'hex'), -decode('01 23 45 67 12 34 56 78 23 45 67 89 34 56 78 9A', 'hex'), -'cast5-ecb/pad:none'), 'hex'); +SELECT encrypt('\x0123456789ABCDEF', '\x0123456712345678234567893456789A', 'cast5-ecb/pad:none'); ERROR: encrypt error: Cipher cannot be initialized ? --- result: 23 8B 4F E5 84 7E 44 B2 -- 80 bit key -SELECT encode(encrypt( -decode('01 23 45 67 89 AB CD EF', 'hex'), -decode('01 23 45 67 12 34 56 78 23 45', 'hex'), -'cast5-ecb/pad:none'), 'hex'); +SELECT encrypt('\x0123456789ABCDEF', '\x01234567123456782345', 'cast5-ecb/pad:none'); ERROR: encrypt error: Cipher cannot be initialized ? --- result: EB 6A 71 1A 2C 02 27 1B -- 40 bit key -SELECT encode(encrypt( -decode('01 23 45 67 89 AB CD EF', 'hex'), -decode('01 23 45 67 12', 'hex'), -'cast5-ecb/pad:none'), 'hex'); +SELECT encrypt('\x0123456789ABCDEF', '\x0123456712', 'cast5-ecb/pad:none'); ERROR: encrypt error: Cipher cannot be initialized ? --- result: 7A C8 16 D1 6E 9B 30 2E -- cbc -- empty data -select encode( encrypt('', 'foo', 'cast5'), 'hex'); +select encrypt('', 'foo', 'cast5'); ERROR: encrypt error: Cipher cannot be initialized ? -- 10 bytes key -select encode( encrypt('foo', '0123456789', 'cast5'), 'hex'); +select encrypt('foo', '0123456789', 'cast5'); ERROR: encrypt error: Cipher cannot be initialized ? -- decrypt -select decrypt(encrypt('foo', '0123456', 'cast5'), '0123456', 'cast5'); +select encode(decrypt(encrypt('foo', '0123456', 'cast5'), '0123456', 'cast5'), 'escape'); ERROR: encrypt error: Cipher cannot be initialized ? -- iv -select encode(encrypt_iv('foo', '0123456', 'abcd', 'cast5'), 'hex'); +select encrypt_iv('foo', '0123456', 'abcd', 'cast5'); ERROR: encrypt_iv error: Cipher cannot be initialized ? -select decrypt_iv(decode('384a970695ce016a', 'hex'), - '0123456', 'abcd', 'cast5'); +select encode(decrypt_iv('\x384a970695ce016a', '0123456', 'abcd', 'cast5'), 'escape'); ERROR: decrypt_iv error: Cipher cannot be initialized ? -- long message -select encode(encrypt('Lets try a longer message.', '0123456789', 'cast5'), 'hex'); +select encrypt('Lets try a longer message.', '0123456789', 'cast5'); ERROR: encrypt error: Cipher cannot be initialized ? -select decrypt(encrypt('Lets try a longer message.', '0123456789', 'cast5'), '0123456789', 'cast5'); +select encode(decrypt(encrypt('Lets try a longer message.', '0123456789', 'cast5'), '0123456789', 'cast5'), 'escape'); ERROR: encrypt error: Cipher cannot be initialized ? diff --git a/contrib/pgcrypto/expected/des.out b/contrib/pgcrypto/expected/des.out index d0fd0041ca..fdbaea26b9 100644 --- a/contrib/pgcrypto/expected/des.out +++ b/contrib/pgcrypto/expected/des.out @@ -1,62 +1,57 @@ -- -- DES cipher -- --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; -- no official test vectors atm -- from blowfish.sql -SELECT encode(encrypt( -decode('0123456789abcdef', 'hex'), -decode('fedcba9876543210', 'hex'), -'des-ecb/pad:none'), 'hex'); - encode ------------------- - ed39d950fa74bcc4 +SELECT encrypt('\x0123456789abcdef', '\xfedcba9876543210', 'des-ecb/pad:none'); + encrypt +-------------------- + \xed39d950fa74bcc4 (1 row) -- empty data -select encode( encrypt('', 'foo', 'des'), 'hex'); - encode ------------------- - 752111e37a2d7ac3 +select encrypt('', 'foo', 'des'); + encrypt +-------------------- + \x752111e37a2d7ac3 (1 row) -- 8 bytes key -select encode( encrypt('foo', '01234589', 'des'), 'hex'); - encode ------------------- - dec0f9c602b647a8 +select encrypt('foo', '01234589', 'des'); + encrypt +-------------------- + \xdec0f9c602b647a8 (1 row) -- decrypt -select decrypt(encrypt('foo', '0123456', 'des'), '0123456', 'des'); - decrypt ---------- +select encode(decrypt(encrypt('foo', '0123456', 'des'), '0123456', 'des'), 'escape'); + encode +-------- foo (1 row) -- iv -select encode(encrypt_iv('foo', '0123456', 'abcd', 'des'), 'hex'); - encode ------------------- - 50735067b073bb93 +select encrypt_iv('foo', '0123456', 'abcd', 'des'); + encrypt_iv +-------------------- + \x50735067b073bb93 (1 row) -select decrypt_iv(decode('50735067b073bb93', 'hex'), '0123456', 'abcd', 'des'); - decrypt_iv ------------- +select encode(decrypt_iv('\x50735067b073bb93', '0123456', 'abcd', 'des'), 'escape'); + encode +-------- foo (1 row) -- long message -select encode(encrypt('Lets try a longer message.', '01234567', 'des'), 'hex'); - encode ------------------------------------------------------------------- - 5ad146043e5f30967e06a0fcbae602daf4ff2a5fd0ed12d6c5913cf85f1e36ca +select encrypt('Lets try a longer message.', '01234567', 'des'); + encrypt +-------------------------------------------------------------------- + \x5ad146043e5f30967e06a0fcbae602daf4ff2a5fd0ed12d6c5913cf85f1e36ca (1 row) -select decrypt(encrypt('Lets try a longer message.', '01234567', 'des'), '01234567', 'des'); - decrypt +select encode(decrypt(encrypt('Lets try a longer message.', '01234567', 'des'), '01234567', 'des'), 'escape'); + encode ---------------------------- Lets try a longer message. (1 row) diff --git a/contrib/pgcrypto/expected/des_1.out b/contrib/pgcrypto/expected/des_1.out index e8cca0505f..acacb38aaa 100644 --- a/contrib/pgcrypto/expected/des_1.out +++ b/contrib/pgcrypto/expected/des_1.out @@ -1,31 +1,26 @@ -- -- DES cipher -- --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; -- no official test vectors atm -- from blowfish.sql -SELECT encode(encrypt( -decode('0123456789abcdef', 'hex'), -decode('fedcba9876543210', 'hex'), -'des-ecb/pad:none'), 'hex'); +SELECT encrypt('\x0123456789abcdef', '\xfedcba9876543210', 'des-ecb/pad:none'); ERROR: encrypt error: Cipher cannot be initialized ? -- empty data -select encode( encrypt('', 'foo', 'des'), 'hex'); +select encrypt('', 'foo', 'des'); ERROR: encrypt error: Cipher cannot be initialized ? -- 8 bytes key -select encode( encrypt('foo', '01234589', 'des'), 'hex'); +select encrypt('foo', '01234589', 'des'); ERROR: encrypt error: Cipher cannot be initialized ? -- decrypt -select decrypt(encrypt('foo', '0123456', 'des'), '0123456', 'des'); +select encode(decrypt(encrypt('foo', '0123456', 'des'), '0123456', 'des'), 'escape'); ERROR: encrypt error: Cipher cannot be initialized ? -- iv -select encode(encrypt_iv('foo', '0123456', 'abcd', 'des'), 'hex'); +select encrypt_iv('foo', '0123456', 'abcd', 'des'); ERROR: encrypt_iv error: Cipher cannot be initialized ? -select decrypt_iv(decode('50735067b073bb93', 'hex'), '0123456', 'abcd', 'des'); +select encode(decrypt_iv('\x50735067b073bb93', '0123456', 'abcd', 'des'), 'escape'); ERROR: decrypt_iv error: Cipher cannot be initialized ? -- long message -select encode(encrypt('Lets try a longer message.', '01234567', 'des'), 'hex'); +select encrypt('Lets try a longer message.', '01234567', 'des'); ERROR: encrypt error: Cipher cannot be initialized ? -select decrypt(encrypt('Lets try a longer message.', '01234567', 'des'), '01234567', 'des'); +select encode(decrypt(encrypt('Lets try a longer message.', '01234567', 'des'), '01234567', 'des'), 'escape'); ERROR: encrypt error: Cipher cannot be initialized ? diff --git a/contrib/pgcrypto/expected/hmac-md5.out b/contrib/pgcrypto/expected/hmac-md5.out index 9eded3b933..0d8d761d48 100644 --- a/contrib/pgcrypto/expected/hmac-md5.out +++ b/contrib/pgcrypto/expected/hmac-md5.out @@ -1,72 +1,72 @@ -- -- HMAC-MD5 -- -SELECT encode(hmac( +SELECT hmac( 'Hi There', -decode('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b', 'hex'), -'md5'), 'hex'); - encode ----------------------------------- - 9294727a3638bb1c13f48ef8158bfc9d +'\x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b'::bytea, +'md5'); + hmac +------------------------------------ + \x9294727a3638bb1c13f48ef8158bfc9d (1 row) -- 2 -SELECT encode(hmac( +SELECT hmac( 'Jefe', 'what do ya want for nothing?', -'md5'), 'hex'); - encode ----------------------------------- - 813aead7c4a34bff01a16d61368e7c13 +'md5'); + hmac +------------------------------------ + \x813aead7c4a34bff01a16d61368e7c13 (1 row) -- 3 -SELECT encode(hmac( -decode('dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd', 'hex'), -decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'), -'md5'), 'hex'); - encode ----------------------------------- - 56be34521d144c88dbb8c733f0e8b3f6 +SELECT hmac( +'\xdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd'::bytea, +'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea, +'md5'); + hmac +------------------------------------ + \x56be34521d144c88dbb8c733f0e8b3f6 (1 row) -- 4 -SELECT encode(hmac( -decode('cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd', 'hex'), -decode('0102030405060708090a0b0c0d0e0f10111213141516171819', 'hex'), -'md5'), 'hex'); - encode ----------------------------------- - 697eaf0aca3a3aea3a75164746ffaa79 +SELECT hmac( +'\xcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd'::bytea, +'\x0102030405060708090a0b0c0d0e0f10111213141516171819'::bytea, +'md5'); + hmac +------------------------------------ + \x697eaf0aca3a3aea3a75164746ffaa79 (1 row) -- 5 -SELECT encode(hmac( +SELECT hmac( 'Test With Truncation', -decode('0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c', 'hex'), -'md5'), 'hex'); - encode ----------------------------------- - 56461ef2342edc00f9bab995690efd4c +'\x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c'::bytea, +'md5'); + hmac +------------------------------------ + \x56461ef2342edc00f9bab995690efd4c (1 row) -- 6 -SELECT encode(hmac( +SELECT hmac( 'Test Using Larger Than Block-Size Key - Hash Key First', -decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'), -'md5'), 'hex'); - encode ----------------------------------- - 6b1ab7fe4bd7bf8f0b62e6ce61b9d0cd +'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea, +'md5'); + hmac +------------------------------------ + \x6b1ab7fe4bd7bf8f0b62e6ce61b9d0cd (1 row) -- 7 -SELECT encode(hmac( +SELECT hmac( 'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data', -decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'), -'md5'), 'hex'); - encode ----------------------------------- - 6f630fad67cda0ee1fb1f562db3aa53e +'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea, +'md5'); + hmac +------------------------------------ + \x6f630fad67cda0ee1fb1f562db3aa53e (1 row) diff --git a/contrib/pgcrypto/expected/hmac-sha1.out b/contrib/pgcrypto/expected/hmac-sha1.out index de605b804e..a7d4c38587 100644 --- a/contrib/pgcrypto/expected/hmac-sha1.out +++ b/contrib/pgcrypto/expected/hmac-sha1.out @@ -1,72 +1,72 @@ -- -- HMAC-SHA1 -- -SELECT encode(hmac( +SELECT hmac( 'Hi There', -decode('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b', 'hex'), -'sha1'), 'hex'); - encode ------------------------------------------- - 675b0b3a1b4ddf4e124872da6c2f632bfed957e9 +'\x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b'::bytea, +'sha1'); + hmac +-------------------------------------------- + \x675b0b3a1b4ddf4e124872da6c2f632bfed957e9 (1 row) -- 2 -SELECT encode(hmac( +SELECT hmac( 'Jefe', 'what do ya want for nothing?', -'sha1'), 'hex'); - encode ------------------------------------------- - 156d4c35468a0339f3fa57a067bf47f814eb7a57 +'sha1'); + hmac +-------------------------------------------- + \x156d4c35468a0339f3fa57a067bf47f814eb7a57 (1 row) -- 3 -SELECT encode(hmac( -decode('dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd', 'hex'), -decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'), -'sha1'), 'hex'); - encode ------------------------------------------- - d730594d167e35d5956fd8003d0db3d3f46dc7bb +SELECT hmac( +'\xdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd'::bytea, +'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea, +'sha1'); + hmac +-------------------------------------------- + \xd730594d167e35d5956fd8003d0db3d3f46dc7bb (1 row) -- 4 -SELECT encode(hmac( -decode('cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd', 'hex'), -decode('0102030405060708090a0b0c0d0e0f10111213141516171819', 'hex'), -'sha1'), 'hex'); - encode ------------------------------------------- - 4c9007f4026250c6bc8414f9bf50c86c2d7235da +SELECT hmac( +'\xcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd'::bytea, +'\x0102030405060708090a0b0c0d0e0f10111213141516171819'::bytea, +'sha1'); + hmac +-------------------------------------------- + \x4c9007f4026250c6bc8414f9bf50c86c2d7235da (1 row) -- 5 -SELECT encode(hmac( +SELECT hmac( 'Test With Truncation', -decode('0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c', 'hex'), -'sha1'), 'hex'); - encode ------------------------------------------- - 37268b7e21e84da5720c53c4ba03ad1104039fa7 +'\x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c'::bytea, +'sha1'); + hmac +-------------------------------------------- + \x37268b7e21e84da5720c53c4ba03ad1104039fa7 (1 row) -- 6 -SELECT encode(hmac( +SELECT hmac( 'Test Using Larger Than Block-Size Key - Hash Key First', -decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'), -'sha1'), 'hex'); - encode ------------------------------------------- - aa4ae5e15272d00e95705637ce8a3b55ed402112 +'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea, +'sha1'); + hmac +-------------------------------------------- + \xaa4ae5e15272d00e95705637ce8a3b55ed402112 (1 row) -- 7 -SELECT encode(hmac( +SELECT hmac( 'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data', -decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'), -'sha1'), 'hex'); - encode ------------------------------------------- - e8e99d0f45237d786d6bbaa7965c7808bbff1a91 +'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea, +'sha1'); + hmac +-------------------------------------------- + \xe8e99d0f45237d786d6bbaa7965c7808bbff1a91 (1 row) diff --git a/contrib/pgcrypto/expected/init.out b/contrib/pgcrypto/expected/init.out index bd8f8e1380..d1341a6715 100644 --- a/contrib/pgcrypto/expected/init.out +++ b/contrib/pgcrypto/expected/init.out @@ -2,21 +2,6 @@ -- init pgcrypto -- CREATE EXTENSION pgcrypto; --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; --- check for encoding fn's -SELECT encode('foo', 'hex'); - encode --------- - 666f6f -(1 row) - -SELECT decode('666f6f', 'hex'); - decode --------- - foo -(1 row) - -- check error handling select gen_salt('foo'); ERROR: gen_salt: Unknown salt algorithm diff --git a/contrib/pgcrypto/expected/md5.out b/contrib/pgcrypto/expected/md5.out index e3301af45c..179059448b 100644 --- a/contrib/pgcrypto/expected/md5.out +++ b/contrib/pgcrypto/expected/md5.out @@ -1,45 +1,45 @@ -- -- MD5 message digest -- -SELECT encode(digest('', 'md5'), 'hex'); - encode ----------------------------------- - d41d8cd98f00b204e9800998ecf8427e +SELECT digest('', 'md5'); + digest +------------------------------------ + \xd41d8cd98f00b204e9800998ecf8427e (1 row) -SELECT encode(digest('a', 'md5'), 'hex'); - encode ----------------------------------- - 0cc175b9c0f1b6a831c399e269772661 +SELECT digest('a', 'md5'); + digest +------------------------------------ + \x0cc175b9c0f1b6a831c399e269772661 (1 row) -SELECT encode(digest('abc', 'md5'), 'hex'); - encode ----------------------------------- - 900150983cd24fb0d6963f7d28e17f72 +SELECT digest('abc', 'md5'); + digest +------------------------------------ + \x900150983cd24fb0d6963f7d28e17f72 (1 row) -SELECT encode(digest('message digest', 'md5'), 'hex'); - encode ----------------------------------- - f96b697d7cb7938d525a2f31aaf161d0 +SELECT digest('message digest', 'md5'); + digest +------------------------------------ + \xf96b697d7cb7938d525a2f31aaf161d0 (1 row) -SELECT encode(digest('abcdefghijklmnopqrstuvwxyz', 'md5'), 'hex'); - encode ----------------------------------- - c3fcd3d76192e4007dfb496cca67e13b +SELECT digest('abcdefghijklmnopqrstuvwxyz', 'md5'); + digest +------------------------------------ + \xc3fcd3d76192e4007dfb496cca67e13b (1 row) -SELECT encode(digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'md5'), 'hex'); - encode ----------------------------------- - d174ab98d277d9f5a5611c2c9f419d9f +SELECT digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'md5'); + digest +------------------------------------ + \xd174ab98d277d9f5a5611c2c9f419d9f (1 row) -SELECT encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'md5'), 'hex'); - encode ----------------------------------- - 57edf4a22be3c955ac49da2e2107b67a +SELECT digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'md5'); + digest +------------------------------------ + \x57edf4a22be3c955ac49da2e2107b67a (1 row) diff --git a/contrib/pgcrypto/expected/pgp-armor.out b/contrib/pgcrypto/expected/pgp-armor.out index 89d410a7dc..0f5ff46180 100644 --- a/contrib/pgcrypto/expected/pgp-armor.out +++ b/contrib/pgcrypto/expected/pgp-armor.out @@ -1,8 +1,6 @@ -- -- PGP Armor -- --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; select armor(''); armor ----------------------------- @@ -24,15 +22,15 @@ select armor('test'); (1 row) -select dearmor(armor('')); - dearmor ---------- +select encode(dearmor(armor('')), 'escape'); + encode +-------- (1 row) -select dearmor(armor('zooka')); - dearmor ---------- +select encode(dearmor(armor('zooka')), 'escape'); + encode +-------- zooka (1 row) @@ -50,7 +48,7 @@ select armor('0123456789abcdef0123456789abcdef0123456789abcdef (1 row) -- lots formatting -select dearmor(' a pgp msg: +select encode(dearmor(' a pgp msg: -----BEGIN PGP MESSAGE----- Comment: Some junk @@ -59,14 +57,14 @@ em9va2E= =D5cR ------END PGP MESSAGE-----'); - dearmor ---------- +-----END PGP MESSAGE-----'), 'escape'); + encode +-------- zooka (1 row) -- lots messages -select dearmor(' +select encode(dearmor(' wrong packet: -----BEGIN PGP MESSAGE----- @@ -87,9 +85,9 @@ use only first packet d3Jvbmc= =vCYP -----END PGP MESSAGE----- -'); - dearmor ---------- +'), 'escape'); + encode +-------- right (1 row) diff --git a/contrib/pgcrypto/expected/pgp-decrypt.out b/contrib/pgcrypto/expected/pgp-decrypt.out index e8250b090a..cd8a84249b 100644 --- a/contrib/pgcrypto/expected/pgp-decrypt.out +++ b/contrib/pgcrypto/expected/pgp-decrypt.out @@ -287,7 +287,7 @@ FwsDabdQUz5O7bgNSnxfmyw1OifGF+W2bIn/8W+0rDf8u3+O+Q== (1 row) -- Checking various data -select encode(digest(pgp_sym_decrypt(dearmor(' +select digest(pgp_sym_decrypt(dearmor(' -----BEGIN PGP MESSAGE----- Comment: dat1.aes.sha1.mdc.s2k3.z0 @@ -295,14 +295,13 @@ jA0EBwMCGJ+SpuOysINg0kQBJfSjzsW0x4OVcAyr17O7FBvMTwIGeGcJd99oTQU8 Xtx3kDqnhUq9Z1fS3qPbi5iNP2A9NxOBxPWz2JzxhydANlgbxg== =W/ik -----END PGP MESSAGE----- -'), '0123456789abcdefghij'), 'sha1'), 'hex'); - encode ------------------------------------------- - 0225e3ede6f2587b076d021a189ff60aad67e066 +'), '0123456789abcdefghij'), 'sha1'); + digest +-------------------------------------------- + \x0225e3ede6f2587b076d021a189ff60aad67e066 (1 row) --- expected: 0225e3ede6f2587b076d021a189ff60aad67e066 -select encode(digest(pgp_sym_decrypt(dearmor(' +select digest(pgp_sym_decrypt(dearmor(' -----BEGIN PGP MESSAGE----- Comment: dat2.aes.sha1.mdc.s2k3.z0 @@ -310,14 +309,13 @@ jA0EBwMCvdpDvidNzMxg0jUBvj8eS2+1t/9/zgemxvhtc0fvdKGGbjH7dleaTJRB SaV9L04ky1qECNDx3XjnoKLC+H7IOQ== =Fxen -----END PGP MESSAGE----- -'), '0123456789abcdefghij'), 'sha1'), 'hex'); - encode ------------------------------------------- - da39a3ee5e6b4b0d3255bfef95601890afd80709 +'), '0123456789abcdefghij'), 'sha1'); + digest +-------------------------------------------- + \xda39a3ee5e6b4b0d3255bfef95601890afd80709 (1 row) --- expected: da39a3ee5e6b4b0d3255bfef95601890afd80709 -select encode(digest(pgp_sym_decrypt(dearmor(' +select digest(pgp_sym_decrypt(dearmor(' -----BEGIN PGP MESSAGE----- Comment: dat3.aes.sha1.mdc.s2k3.z0 @@ -326,15 +324,14 @@ gFnkUKIE0PSaYFp+Yi1VlRfUtRQ/X/LYNGa7tWZS+4VQajz2Xtz4vUeAEiYFYPXk 73Hb8m1yRhQK =ivrD -----END PGP MESSAGE----- -'), '0123456789abcdefghij'), 'sha1'), 'hex'); - encode ------------------------------------------- - 5e5c135efc0dd00633efc6dfd6e731ea408a5b4c +'), '0123456789abcdefghij'), 'sha1'); + digest +-------------------------------------------- + \x5e5c135efc0dd00633efc6dfd6e731ea408a5b4c (1 row) --- expected: 5e5c135efc0dd00633efc6dfd6e731ea408a5b4c -- Checking CRLF -select encode(digest(pgp_sym_decrypt(dearmor(' +select digest(pgp_sym_decrypt(dearmor(' -----BEGIN PGP MESSAGE----- Comment: crlf mess @@ -342,14 +339,13 @@ ww0ECQMCt7VAtby6l4Bi0lgB5KMIZiiF/b3CfMfUyY0eDncsGXtkbu1X+l9brjpMP8eJnY79Amms a3nsOzKTXUfS9VyaXo8IrncM6n7fdaXpwba/3tNsAhJG4lDv1k4g9v8Ix2dfv6Rs =mBP9 -----END PGP MESSAGE----- -'), 'key', 'convert-crlf=0'), 'sha1'), 'hex'); - encode ------------------------------------------- - 9353062be7720f1446d30b9e75573a4833886784 +'), 'key', 'convert-crlf=0'), 'sha1'); + digest +-------------------------------------------- + \x9353062be7720f1446d30b9e75573a4833886784 (1 row) --- expected: 9353062be7720f1446d30b9e75573a4833886784 -select encode(digest(pgp_sym_decrypt(dearmor(' +select digest(pgp_sym_decrypt(dearmor(' -----BEGIN PGP MESSAGE----- Comment: crlf mess @@ -357,13 +353,12 @@ ww0ECQMCt7VAtby6l4Bi0lgB5KMIZiiF/b3CfMfUyY0eDncsGXtkbu1X+l9brjpMP8eJnY79Amms a3nsOzKTXUfS9VyaXo8IrncM6n7fdaXpwba/3tNsAhJG4lDv1k4g9v8Ix2dfv6Rs =mBP9 -----END PGP MESSAGE----- -'), 'key', 'convert-crlf=1'), 'sha1'), 'hex'); - encode ------------------------------------------- - 7efefcab38467f7484d6fa43dc86cf5281bd78e2 +'), 'key', 'convert-crlf=1'), 'sha1'); + digest +-------------------------------------------- + \x7efefcab38467f7484d6fa43dc86cf5281bd78e2 (1 row) --- expected: 7efefcab38467f7484d6fa43dc86cf5281bd78e2 -- check BUG #11905, problem with messages 6 less than a power of 2. select pgp_sym_decrypt(pgp_sym_encrypt(repeat('x',65530),'1'),'1') = repeat('x',65530); ?column? diff --git a/contrib/pgcrypto/expected/pgp-decrypt_1.out b/contrib/pgcrypto/expected/pgp-decrypt_1.out index 63d5ab9865..6c7f127bec 100644 --- a/contrib/pgcrypto/expected/pgp-decrypt_1.out +++ b/contrib/pgcrypto/expected/pgp-decrypt_1.out @@ -283,7 +283,7 @@ FwsDabdQUz5O7bgNSnxfmyw1OifGF+W2bIn/8W+0rDf8u3+O+Q== (1 row) -- Checking various data -select encode(digest(pgp_sym_decrypt(dearmor(' +select digest(pgp_sym_decrypt(dearmor(' -----BEGIN PGP MESSAGE----- Comment: dat1.aes.sha1.mdc.s2k3.z0 @@ -291,14 +291,13 @@ jA0EBwMCGJ+SpuOysINg0kQBJfSjzsW0x4OVcAyr17O7FBvMTwIGeGcJd99oTQU8 Xtx3kDqnhUq9Z1fS3qPbi5iNP2A9NxOBxPWz2JzxhydANlgbxg== =W/ik -----END PGP MESSAGE----- -'), '0123456789abcdefghij'), 'sha1'), 'hex'); - encode ------------------------------------------- - 0225e3ede6f2587b076d021a189ff60aad67e066 +'), '0123456789abcdefghij'), 'sha1'); + digest +-------------------------------------------- + \x0225e3ede6f2587b076d021a189ff60aad67e066 (1 row) --- expected: 0225e3ede6f2587b076d021a189ff60aad67e066 -select encode(digest(pgp_sym_decrypt(dearmor(' +select digest(pgp_sym_decrypt(dearmor(' -----BEGIN PGP MESSAGE----- Comment: dat2.aes.sha1.mdc.s2k3.z0 @@ -306,14 +305,13 @@ jA0EBwMCvdpDvidNzMxg0jUBvj8eS2+1t/9/zgemxvhtc0fvdKGGbjH7dleaTJRB SaV9L04ky1qECNDx3XjnoKLC+H7IOQ== =Fxen -----END PGP MESSAGE----- -'), '0123456789abcdefghij'), 'sha1'), 'hex'); - encode ------------------------------------------- - da39a3ee5e6b4b0d3255bfef95601890afd80709 +'), '0123456789abcdefghij'), 'sha1'); + digest +-------------------------------------------- + \xda39a3ee5e6b4b0d3255bfef95601890afd80709 (1 row) --- expected: da39a3ee5e6b4b0d3255bfef95601890afd80709 -select encode(digest(pgp_sym_decrypt(dearmor(' +select digest(pgp_sym_decrypt(dearmor(' -----BEGIN PGP MESSAGE----- Comment: dat3.aes.sha1.mdc.s2k3.z0 @@ -322,15 +320,14 @@ gFnkUKIE0PSaYFp+Yi1VlRfUtRQ/X/LYNGa7tWZS+4VQajz2Xtz4vUeAEiYFYPXk 73Hb8m1yRhQK =ivrD -----END PGP MESSAGE----- -'), '0123456789abcdefghij'), 'sha1'), 'hex'); - encode ------------------------------------------- - 5e5c135efc0dd00633efc6dfd6e731ea408a5b4c +'), '0123456789abcdefghij'), 'sha1'); + digest +-------------------------------------------- + \x5e5c135efc0dd00633efc6dfd6e731ea408a5b4c (1 row) --- expected: 5e5c135efc0dd00633efc6dfd6e731ea408a5b4c -- Checking CRLF -select encode(digest(pgp_sym_decrypt(dearmor(' +select digest(pgp_sym_decrypt(dearmor(' -----BEGIN PGP MESSAGE----- Comment: crlf mess @@ -338,14 +335,13 @@ ww0ECQMCt7VAtby6l4Bi0lgB5KMIZiiF/b3CfMfUyY0eDncsGXtkbu1X+l9brjpMP8eJnY79Amms a3nsOzKTXUfS9VyaXo8IrncM6n7fdaXpwba/3tNsAhJG4lDv1k4g9v8Ix2dfv6Rs =mBP9 -----END PGP MESSAGE----- -'), 'key', 'convert-crlf=0'), 'sha1'), 'hex'); - encode ------------------------------------------- - 9353062be7720f1446d30b9e75573a4833886784 +'), 'key', 'convert-crlf=0'), 'sha1'); + digest +-------------------------------------------- + \x9353062be7720f1446d30b9e75573a4833886784 (1 row) --- expected: 9353062be7720f1446d30b9e75573a4833886784 -select encode(digest(pgp_sym_decrypt(dearmor(' +select digest(pgp_sym_decrypt(dearmor(' -----BEGIN PGP MESSAGE----- Comment: crlf mess @@ -353,13 +349,12 @@ ww0ECQMCt7VAtby6l4Bi0lgB5KMIZiiF/b3CfMfUyY0eDncsGXtkbu1X+l9brjpMP8eJnY79Amms a3nsOzKTXUfS9VyaXo8IrncM6n7fdaXpwba/3tNsAhJG4lDv1k4g9v8Ix2dfv6Rs =mBP9 -----END PGP MESSAGE----- -'), 'key', 'convert-crlf=1'), 'sha1'), 'hex'); - encode ------------------------------------------- - 7efefcab38467f7484d6fa43dc86cf5281bd78e2 +'), 'key', 'convert-crlf=1'), 'sha1'); + digest +-------------------------------------------- + \x7efefcab38467f7484d6fa43dc86cf5281bd78e2 (1 row) --- expected: 7efefcab38467f7484d6fa43dc86cf5281bd78e2 -- check BUG #11905, problem with messages 6 less than a power of 2. select pgp_sym_decrypt(pgp_sym_encrypt(repeat('x',65530),'1'),'1') = repeat('x',65530); ?column? diff --git a/contrib/pgcrypto/expected/pgp-encrypt.out b/contrib/pgcrypto/expected/pgp-encrypt.out index 8fc558c402..77e45abe53 100644 --- a/contrib/pgcrypto/expected/pgp-encrypt.out +++ b/contrib/pgcrypto/expected/pgp-encrypt.out @@ -1,8 +1,6 @@ -- -- PGP encrypt -- --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; select pgp_sym_decrypt(pgp_sym_encrypt('Secret.', 'key'), 'key'); pgp_sym_decrypt ----------------- @@ -47,9 +45,9 @@ NOTICE: pgp_decrypt: unexpected compress_algo: expected 1 got 0 select pgp_sym_decrypt(pgp_sym_encrypt_bytea('Binary', 'baz'), 'baz'); ERROR: Not text data -- text as bytea -select pgp_sym_decrypt_bytea(pgp_sym_encrypt('Text', 'baz'), 'baz'); - pgp_sym_decrypt_bytea ------------------------ +select encode(pgp_sym_decrypt_bytea(pgp_sym_encrypt('Text', 'baz'), 'baz'), 'escape'); + encode +-------- Text (1 row) @@ -190,21 +188,21 @@ select pgp_sym_decrypt( (1 row) -- crlf -select encode(pgp_sym_decrypt_bytea( +select pgp_sym_decrypt_bytea( pgp_sym_encrypt(E'1\n2\n3\r\n', 'key', 'convert-crlf=1'), - 'key'), 'hex'); - encode ----------------------- - 310d0a320d0a330d0d0a + 'key'); + pgp_sym_decrypt_bytea +------------------------ + \x310d0a320d0a330d0d0a (1 row) -- conversion should be lossless -select encode(digest(pgp_sym_decrypt( +select digest(pgp_sym_decrypt( pgp_sym_encrypt(E'\r\n0\n1\r\r\n\n2\r', 'key', 'convert-crlf=1'), - 'key', 'convert-crlf=1'), 'sha1'), 'hex') as result, - encode(digest(E'\r\n0\n1\r\r\n\n2\r', 'sha1'), 'hex') as expect; - result | expect -------------------------------------------+------------------------------------------ - 47bde5d88d6ef8770572b9cbb4278b402aa69966 | 47bde5d88d6ef8770572b9cbb4278b402aa69966 + 'key', 'convert-crlf=1'), 'sha1') as result, + digest(E'\r\n0\n1\r\r\n\n2\r', 'sha1') as expect; + result | expect +--------------------------------------------+-------------------------------------------- + \x47bde5d88d6ef8770572b9cbb4278b402aa69966 | \x47bde5d88d6ef8770572b9cbb4278b402aa69966 (1 row) diff --git a/contrib/pgcrypto/expected/pgp-pubkey-encrypt.out b/contrib/pgcrypto/expected/pgp-pubkey-encrypt.out index df2756c4d0..7f90554046 100644 --- a/contrib/pgcrypto/expected/pgp-pubkey-encrypt.out +++ b/contrib/pgcrypto/expected/pgp-pubkey-encrypt.out @@ -1,8 +1,6 @@ -- -- PGP Public Key Encryption -- --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; -- successful encrypt/decrypt select pgp_pub_decrypt( pgp_pub_encrypt('Secret msg', dearmor(pubkey)), @@ -53,12 +51,12 @@ select pgp_pub_decrypt( from keytbl where keytbl.id=1; ERROR: Refusing to encrypt with secret key -- does text-to-bytea works -select pgp_pub_decrypt_bytea( +select encode(pgp_pub_decrypt_bytea( pgp_pub_encrypt('Secret msg', dearmor(pubkey)), - dearmor(seckey)) + dearmor(seckey)), 'escape') from keytbl where keytbl.id=1; - pgp_pub_decrypt_bytea ------------------------ + encode +------------ Secret msg (1 row) diff --git a/contrib/pgcrypto/expected/rijndael.out b/contrib/pgcrypto/expected/rijndael.out index 5366604a3d..ad69cdba49 100644 --- a/contrib/pgcrypto/expected/rijndael.out +++ b/contrib/pgcrypto/expected/rijndael.out @@ -1,125 +1,122 @@ -- -- AES cipher (aka Rijndael-128, -192, or -256) -- --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; -- some standard Rijndael testvalues -SELECT encode(encrypt( -decode('00112233445566778899aabbccddeeff', 'hex'), -decode('000102030405060708090a0b0c0d0e0f', 'hex'), -'aes-ecb/pad:none'), 'hex'); - encode ----------------------------------- - 69c4e0d86a7b0430d8cdb78070b4c55a +SELECT encrypt( +'\x00112233445566778899aabbccddeeff', +'\x000102030405060708090a0b0c0d0e0f', +'aes-ecb/pad:none'); + encrypt +------------------------------------ + \x69c4e0d86a7b0430d8cdb78070b4c55a (1 row) -SELECT encode(encrypt( -decode('00112233445566778899aabbccddeeff', 'hex'), -decode('000102030405060708090a0b0c0d0e0f1011121314151617', 'hex'), -'aes-ecb/pad:none'), 'hex'); - encode ----------------------------------- - dda97ca4864cdfe06eaf70a0ec0d7191 +SELECT encrypt( +'\x00112233445566778899aabbccddeeff', +'\x000102030405060708090a0b0c0d0e0f1011121314151617', +'aes-ecb/pad:none'); + encrypt +------------------------------------ + \xdda97ca4864cdfe06eaf70a0ec0d7191 (1 row) -SELECT encode(encrypt( -decode('00112233445566778899aabbccddeeff', 'hex'), -decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', 'hex'), -'aes-ecb/pad:none'), 'hex'); - encode ----------------------------------- - 8ea2b7ca516745bfeafc49904b496089 +SELECT encrypt( +'\x00112233445566778899aabbccddeeff', +'\x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', +'aes-ecb/pad:none'); + encrypt +------------------------------------ + \x8ea2b7ca516745bfeafc49904b496089 (1 row) -- cbc -SELECT encode(encrypt( -decode('00112233445566778899aabbccddeeff', 'hex'), -decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', 'hex'), -'aes-cbc/pad:none'), 'hex'); - encode ----------------------------------- - 8ea2b7ca516745bfeafc49904b496089 +SELECT encrypt( +'\x00112233445566778899aabbccddeeff', +'\x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', +'aes-cbc/pad:none'); + encrypt +------------------------------------ + \x8ea2b7ca516745bfeafc49904b496089 (1 row) -- key padding -SELECT encode(encrypt( -decode('0011223344', 'hex'), -decode('000102030405', 'hex'), -'aes-cbc'), 'hex'); - encode ----------------------------------- - 189a28932213f017b246678dbc28655f +SELECT encrypt( +'\x0011223344', +'\x000102030405', +'aes-cbc'); + encrypt +------------------------------------ + \x189a28932213f017b246678dbc28655f (1 row) -SELECT encode(encrypt( -decode('0011223344', 'hex'), -decode('000102030405060708090a0b0c0d0e0f10111213', 'hex'), -'aes-cbc'), 'hex'); - encode ----------------------------------- - 3b02279162d15580e069d3a71407a556 +SELECT encrypt( +'\x0011223344', +'\x000102030405060708090a0b0c0d0e0f10111213', +'aes-cbc'); + encrypt +------------------------------------ + \x3b02279162d15580e069d3a71407a556 (1 row) -SELECT encode(encrypt( -decode('0011223344', 'hex'), -decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b', 'hex'), -'aes-cbc'), 'hex'); - encode ----------------------------------- - 4facb6a041d53e0a5a73289170901fe7 +SELECT encrypt( +'\x0011223344', +'\x000102030405060708090a0b0c0d0e0f101112131415161718191a1b', +'aes-cbc'); + encrypt +------------------------------------ + \x4facb6a041d53e0a5a73289170901fe7 (1 row) -- empty data -select encode(encrypt('', 'foo', 'aes'), 'hex'); - encode ----------------------------------- - b48cc3338a2eb293b6007ef72c360d48 +select encrypt('', 'foo', 'aes'); + encrypt +------------------------------------ + \xb48cc3338a2eb293b6007ef72c360d48 (1 row) -- 10 bytes key -select encode(encrypt('foo', '0123456789', 'aes'), 'hex'); - encode ----------------------------------- - f397f03d2819b7172b68d0706fda4693 +select encrypt('foo', '0123456789', 'aes'); + encrypt +------------------------------------ + \xf397f03d2819b7172b68d0706fda4693 (1 row) -- 22 bytes key -select encode(encrypt('foo', '0123456789012345678901', 'aes'), 'hex'); - encode ----------------------------------- - 5c9db77af02b4678117bcd8a71ae7f53 +select encrypt('foo', '0123456789012345678901', 'aes'); + encrypt +------------------------------------ + \x5c9db77af02b4678117bcd8a71ae7f53 (1 row) -- decrypt -select decrypt(encrypt('foo', '0123456', 'aes'), '0123456', 'aes'); - decrypt ---------- +select encode(decrypt(encrypt('foo', '0123456', 'aes'), '0123456', 'aes'), 'escape'); + encode +-------- foo (1 row) -- iv -select encode(encrypt_iv('foo', '0123456', 'abcd', 'aes'), 'hex'); - encode ----------------------------------- - 2c24cb7da91d6d5699801268b0f5adad +select encrypt_iv('foo', '0123456', 'abcd', 'aes'); + encrypt_iv +------------------------------------ + \x2c24cb7da91d6d5699801268b0f5adad (1 row) -select decrypt_iv(decode('2c24cb7da91d6d5699801268b0f5adad', 'hex'), - '0123456', 'abcd', 'aes'); - decrypt_iv ------------- +select encode(decrypt_iv('\x2c24cb7da91d6d5699801268b0f5adad', '0123456', 'abcd', 'aes'), 'escape'); + encode +-------- foo (1 row) -- long message -select encode(encrypt('Lets try a longer message.', '0123456789', 'aes'), 'hex'); - encode ------------------------------------------------------------------- - d9beb785dd5403ed02f66b755bb191b93ed93ca54930153f2c3b9ec7785056ad +select encrypt('Lets try a longer message.', '0123456789', 'aes'); + encrypt +-------------------------------------------------------------------- + \xd9beb785dd5403ed02f66b755bb191b93ed93ca54930153f2c3b9ec7785056ad (1 row) -select decrypt(encrypt('Lets try a longer message.', '0123456789', 'aes'), '0123456789', 'aes'); - decrypt +select encode(decrypt(encrypt('Lets try a longer message.', '0123456789', 'aes'), '0123456789', 'aes'), 'escape'); + encode ---------------------------- Lets try a longer message. (1 row) diff --git a/contrib/pgcrypto/expected/sha1.out b/contrib/pgcrypto/expected/sha1.out index 9324d5d924..b8eaed1c5a 100644 --- a/contrib/pgcrypto/expected/sha1.out +++ b/contrib/pgcrypto/expected/sha1.out @@ -1,45 +1,45 @@ -- -- SHA1 message digest -- -SELECT encode(digest('', 'sha1'), 'hex'); - encode ------------------------------------------- - da39a3ee5e6b4b0d3255bfef95601890afd80709 +SELECT digest('', 'sha1'); + digest +-------------------------------------------- + \xda39a3ee5e6b4b0d3255bfef95601890afd80709 (1 row) -SELECT encode(digest('a', 'sha1'), 'hex'); - encode ------------------------------------------- - 86f7e437faa5a7fce15d1ddcb9eaeaea377667b8 +SELECT digest('a', 'sha1'); + digest +-------------------------------------------- + \x86f7e437faa5a7fce15d1ddcb9eaeaea377667b8 (1 row) -SELECT encode(digest('abc', 'sha1'), 'hex'); - encode ------------------------------------------- - a9993e364706816aba3e25717850c26c9cd0d89d +SELECT digest('abc', 'sha1'); + digest +-------------------------------------------- + \xa9993e364706816aba3e25717850c26c9cd0d89d (1 row) -SELECT encode(digest('message digest', 'sha1'), 'hex'); - encode ------------------------------------------- - c12252ceda8be8994d5fa0290a47231c1d16aae3 +SELECT digest('message digest', 'sha1'); + digest +-------------------------------------------- + \xc12252ceda8be8994d5fa0290a47231c1d16aae3 (1 row) -SELECT encode(digest('abcdefghijklmnopqrstuvwxyz', 'sha1'), 'hex'); - encode ------------------------------------------- - 32d10c7b8cf96570ca04ce37f2a19d84240d3a89 +SELECT digest('abcdefghijklmnopqrstuvwxyz', 'sha1'); + digest +-------------------------------------------- + \x32d10c7b8cf96570ca04ce37f2a19d84240d3a89 (1 row) -SELECT encode(digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'sha1'), 'hex'); - encode ------------------------------------------- - 761c457bf73b14d27e9e9265c46f4b4dda11f940 +SELECT digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'sha1'); + digest +-------------------------------------------- + \x761c457bf73b14d27e9e9265c46f4b4dda11f940 (1 row) -SELECT encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha1'), 'hex'); - encode ------------------------------------------- - 50abf5706a150990a08b2c5ea40fa0e585554732 +SELECT digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha1'); + digest +-------------------------------------------- + \x50abf5706a150990a08b2c5ea40fa0e585554732 (1 row) diff --git a/contrib/pgcrypto/expected/sha2.out b/contrib/pgcrypto/expected/sha2.out index 2df5a0d0f9..6f67fe6eca 100644 --- a/contrib/pgcrypto/expected/sha2.out +++ b/contrib/pgcrypto/expected/sha2.out @@ -2,138 +2,138 @@ -- SHA2 family -- -- SHA224 -SELECT encode(digest('', 'sha224'), 'hex'); - encode ----------------------------------------------------------- - d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f +SELECT digest('', 'sha224'); + digest +------------------------------------------------------------ + \xd14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f (1 row) -SELECT encode(digest('a', 'sha224'), 'hex'); - encode ----------------------------------------------------------- - abd37534c7d9a2efb9465de931cd7055ffdb8879563ae98078d6d6d5 +SELECT digest('a', 'sha224'); + digest +------------------------------------------------------------ + \xabd37534c7d9a2efb9465de931cd7055ffdb8879563ae98078d6d6d5 (1 row) -SELECT encode(digest('abc', 'sha224'), 'hex'); - encode ----------------------------------------------------------- - 23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7 +SELECT digest('abc', 'sha224'); + digest +------------------------------------------------------------ + \x23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7 (1 row) -SELECT encode(digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha224'), 'hex'); - encode ----------------------------------------------------------- - 75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525 +SELECT digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha224'); + digest +------------------------------------------------------------ + \x75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525 (1 row) -SELECT encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha224'), 'hex'); - encode ----------------------------------------------------------- - b50aecbe4e9bb0b57bc5f3ae760a8e01db24f203fb3cdcd13148046e +SELECT digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha224'); + digest +------------------------------------------------------------ + \xb50aecbe4e9bb0b57bc5f3ae760a8e01db24f203fb3cdcd13148046e (1 row) -- SHA256 -SELECT encode(digest('', 'sha256'), 'hex'); - encode ------------------------------------------------------------------- - e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +SELECT digest('', 'sha256'); + digest +-------------------------------------------------------------------- + \xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 (1 row) -SELECT encode(digest('a', 'sha256'), 'hex'); - encode ------------------------------------------------------------------- - ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb +SELECT digest('a', 'sha256'); + digest +-------------------------------------------------------------------- + \xca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb (1 row) -SELECT encode(digest('abc', 'sha256'), 'hex'); - encode ------------------------------------------------------------------- - ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad +SELECT digest('abc', 'sha256'); + digest +-------------------------------------------------------------------- + \xba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad (1 row) -SELECT encode(digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha256'), 'hex'); - encode ------------------------------------------------------------------- - 248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1 +SELECT digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha256'); + digest +-------------------------------------------------------------------- + \x248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1 (1 row) -SELECT encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha256'), 'hex'); - encode ------------------------------------------------------------------- - f371bc4a311f2b009eef952dd83ca80e2b60026c8e935592d0f9c308453c813e +SELECT digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha256'); + digest +-------------------------------------------------------------------- + \xf371bc4a311f2b009eef952dd83ca80e2b60026c8e935592d0f9c308453c813e (1 row) -- SHA384 -SELECT encode(digest('', 'sha384'), 'hex'); - encode --------------------------------------------------------------------------------------------------- - 38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b +SELECT digest('', 'sha384'); + digest +---------------------------------------------------------------------------------------------------- + \x38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b (1 row) -SELECT encode(digest('a', 'sha384'), 'hex'); - encode --------------------------------------------------------------------------------------------------- - 54a59b9f22b0b80880d8427e548b7c23abd873486e1f035dce9cd697e85175033caa88e6d57bc35efae0b5afd3145f31 +SELECT digest('a', 'sha384'); + digest +---------------------------------------------------------------------------------------------------- + \x54a59b9f22b0b80880d8427e548b7c23abd873486e1f035dce9cd697e85175033caa88e6d57bc35efae0b5afd3145f31 (1 row) -SELECT encode(digest('abc', 'sha384'), 'hex'); - encode --------------------------------------------------------------------------------------------------- - cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7 +SELECT digest('abc', 'sha384'); + digest +---------------------------------------------------------------------------------------------------- + \xcb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7 (1 row) -SELECT encode(digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha384'), 'hex'); - encode --------------------------------------------------------------------------------------------------- - 3391fdddfc8dc7393707a65b1b4709397cf8b1d162af05abfe8f450de5f36bc6b0455a8520bc4e6f5fe95b1fe3c8452b +SELECT digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha384'); + digest +---------------------------------------------------------------------------------------------------- + \x3391fdddfc8dc7393707a65b1b4709397cf8b1d162af05abfe8f450de5f36bc6b0455a8520bc4e6f5fe95b1fe3c8452b (1 row) -SELECT encode(digest('abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu', 'sha384'), 'hex'); - encode --------------------------------------------------------------------------------------------------- - 09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712fcc7c71a557e2db966c3e9fa91746039 +SELECT digest('abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu', 'sha384'); + digest +---------------------------------------------------------------------------------------------------- + \x09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712fcc7c71a557e2db966c3e9fa91746039 (1 row) -SELECT encode(digest('abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz', 'sha384'), 'hex'); - encode --------------------------------------------------------------------------------------------------- - 3d208973ab3508dbbd7e2c2862ba290ad3010e4978c198dc4d8fd014e582823a89e16f9b2a7bbc1ac938e2d199e8bea4 +SELECT digest('abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz', 'sha384'); + digest +---------------------------------------------------------------------------------------------------- + \x3d208973ab3508dbbd7e2c2862ba290ad3010e4978c198dc4d8fd014e582823a89e16f9b2a7bbc1ac938e2d199e8bea4 (1 row) -- SHA512 -SELECT encode(digest('', 'sha512'), 'hex'); - encode ----------------------------------------------------------------------------------------------------------------------------------- - cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e +SELECT digest('', 'sha512'); + digest +------------------------------------------------------------------------------------------------------------------------------------ + \xcf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e (1 row) -SELECT encode(digest('a', 'sha512'), 'hex'); - encode ----------------------------------------------------------------------------------------------------------------------------------- - 1f40fc92da241694750979ee6cf582f2d5d7d28e18335de05abc54d0560e0f5302860c652bf08d560252aa5e74210546f369fbbbce8c12cfc7957b2652fe9a75 +SELECT digest('a', 'sha512'); + digest +------------------------------------------------------------------------------------------------------------------------------------ + \x1f40fc92da241694750979ee6cf582f2d5d7d28e18335de05abc54d0560e0f5302860c652bf08d560252aa5e74210546f369fbbbce8c12cfc7957b2652fe9a75 (1 row) -SELECT encode(digest('abc', 'sha512'), 'hex'); - encode ----------------------------------------------------------------------------------------------------------------------------------- - ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f +SELECT digest('abc', 'sha512'); + digest +------------------------------------------------------------------------------------------------------------------------------------ + \xddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f (1 row) -SELECT encode(digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha512'), 'hex'); - encode ----------------------------------------------------------------------------------------------------------------------------------- - 204a8fc6dda82f0a0ced7beb8e08a41657c16ef468b228a8279be331a703c33596fd15c13b1b07f9aa1d3bea57789ca031ad85c7a71dd70354ec631238ca3445 +SELECT digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha512'); + digest +------------------------------------------------------------------------------------------------------------------------------------ + \x204a8fc6dda82f0a0ced7beb8e08a41657c16ef468b228a8279be331a703c33596fd15c13b1b07f9aa1d3bea57789ca031ad85c7a71dd70354ec631238ca3445 (1 row) -SELECT encode(digest('abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu', 'sha512'), 'hex'); - encode ----------------------------------------------------------------------------------------------------------------------------------- - 8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909 +SELECT digest('abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu', 'sha512'); + digest +------------------------------------------------------------------------------------------------------------------------------------ + \x8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909 (1 row) -SELECT encode(digest('abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz', 'sha512'), 'hex'); - encode ----------------------------------------------------------------------------------------------------------------------------------- - 930d0cefcb30ff1133b6898121f1cf3d27578afcafe8677c5257cf069911f75d8f5831b56ebfda67b278e66dff8b84fe2b2870f742a580d8edb41987232850c9 +SELECT digest('abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz', 'sha512'); + digest +------------------------------------------------------------------------------------------------------------------------------------ + \x930d0cefcb30ff1133b6898121f1cf3d27578afcafe8677c5257cf069911f75d8f5831b56ebfda67b278e66dff8b84fe2b2870f742a580d8edb41987232850c9 (1 row) diff --git a/contrib/pgcrypto/sql/3des.sql b/contrib/pgcrypto/sql/3des.sql index ef54592060..1b71a108c2 100644 --- a/contrib/pgcrypto/sql/3des.sql +++ b/contrib/pgcrypto/sql/3des.sql @@ -1,31 +1,25 @@ -- -- 3DES cipher -- --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; -- test vector from somewhere -SELECT encode(encrypt( -decode('80 00 00 00 00 00 00 00', 'hex'), -decode('01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01 - 01 01 01 01 01 01 01 01', 'hex'), -'3des-ecb/pad:none'), 'hex'); --- val 95 F8 A5 E5 DD 31 D9 00 +SELECT encrypt('\x8000000000000000', + '\x010101010101010101010101010101010101010101010101', + '3des-ecb/pad:none'); -select encode( encrypt('', 'foo', '3des'), 'hex'); +select encrypt('', 'foo', '3des'); -- 10 bytes key -select encode( encrypt('foo', '0123456789', '3des'), 'hex'); +select encrypt('foo', '0123456789', '3des'); -- 22 bytes key -select encode( encrypt('foo', '0123456789012345678901', '3des'), 'hex'); +select encrypt('foo', '0123456789012345678901', '3des'); -- decrypt -select decrypt(encrypt('foo', '0123456', '3des'), '0123456', '3des'); +select encode(decrypt(encrypt('foo', '0123456', '3des'), '0123456', '3des'), 'escape'); -- iv -select encode(encrypt_iv('foo', '0123456', 'abcd', '3des'), 'hex'); -select decrypt_iv(decode('50735067b073bb93', 'hex'), '0123456', 'abcd', '3des'); +select encrypt_iv('foo', '0123456', 'abcd', '3des'); +select encode(decrypt_iv('\x50735067b073bb93', '0123456', 'abcd', '3des'), 'escape'); -- long message -select encode(encrypt('Lets try a longer message.', '0123456789012345678901', '3des'), 'hex'); -select decrypt(encrypt('Lets try a longer message.', '0123456789012345678901', '3des'), '0123456789012345678901', '3des'); +select encrypt('Lets try a longer message.', '0123456789012345678901', '3des'); +select encode(decrypt(encrypt('Lets try a longer message.', '0123456789012345678901', '3des'), '0123456789012345678901', '3des'), 'escape'); diff --git a/contrib/pgcrypto/sql/blowfish.sql b/contrib/pgcrypto/sql/blowfish.sql index ba8df41c68..c212cf2e37 100644 --- a/contrib/pgcrypto/sql/blowfish.sql +++ b/contrib/pgcrypto/sql/blowfish.sql @@ -1,92 +1,53 @@ -- -- Blowfish cipher -- --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; -- some standard Blowfish testvalues -SELECT encode(encrypt( -decode('0000000000000000', 'hex'), -decode('0000000000000000', 'hex'), -'bf-ecb/pad:none'), 'hex'); - -SELECT encode(encrypt( -decode('ffffffffffffffff', 'hex'), -decode('ffffffffffffffff', 'hex'), -'bf-ecb/pad:none'), 'hex'); - -SELECT encode(encrypt( -decode('1000000000000001', 'hex'), -decode('3000000000000000', 'hex'), -'bf-ecb/pad:none'), 'hex'); - -SELECT encode(encrypt( -decode('1111111111111111', 'hex'), -decode('1111111111111111', 'hex'), -'bf-ecb/pad:none'), 'hex'); - -SELECT encode(encrypt( -decode('0123456789abcdef', 'hex'), -decode('fedcba9876543210', 'hex'), -'bf-ecb/pad:none'), 'hex'); - -SELECT encode(encrypt( -decode('01a1d6d039776742', 'hex'), -decode('fedcba9876543210', 'hex'), -'bf-ecb/pad:none'), 'hex'); - -SELECT encode(encrypt( -decode('ffffffffffffffff', 'hex'), -decode('0000000000000000', 'hex'), -'bf-ecb/pad:none'), 'hex'); +SELECT encrypt('\x0000000000000000', '\x0000000000000000', 'bf-ecb/pad:none'); +SELECT encrypt('\xffffffffffffffff', '\xffffffffffffffff', 'bf-ecb/pad:none'); +SELECT encrypt('\x1000000000000001', '\x3000000000000000', 'bf-ecb/pad:none'); +SELECT encrypt('\x1111111111111111', '\x1111111111111111', 'bf-ecb/pad:none'); +SELECT encrypt('\x0123456789abcdef', '\xfedcba9876543210', 'bf-ecb/pad:none'); +SELECT encrypt('\x01a1d6d039776742', '\xfedcba9876543210', 'bf-ecb/pad:none'); +SELECT encrypt('\xffffffffffffffff', '\x0000000000000000', 'bf-ecb/pad:none'); -- setkey -SELECT encode(encrypt( -decode('fedcba9876543210', 'hex'), -decode('f0e1d2c3b4a5968778695a4b3c2d1e0f', 'hex'), -'bf-ecb/pad:none'), 'hex'); +SELECT encrypt('\xfedcba9876543210', '\xf0e1d2c3b4a5968778695a4b3c2d1e0f', 'bf-ecb/pad:none'); -- with padding -SELECT encode(encrypt( -decode('01234567890123456789', 'hex'), -decode('33443344334433443344334433443344', 'hex'), -'bf-ecb'), 'hex'); +SELECT encrypt('\x01234567890123456789', '\x33443344334433443344334433443344', 'bf-ecb'); -- cbc -- 28 bytes key -SELECT encode(encrypt( -decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5', 'hex'), -decode('37363534333231204e6f77206973207468652074696d6520666f7220', 'hex'), -'bf-cbc'), 'hex'); +SELECT encrypt('\x6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5', + '\x37363534333231204e6f77206973207468652074696d6520666f7220', + 'bf-cbc'); -- 29 bytes key -SELECT encode(encrypt( -decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc', 'hex'), -decode('37363534333231204e6f77206973207468652074696d6520666f722000', 'hex'), -'bf-cbc'), 'hex'); +SELECT encrypt('\x6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc', + '\x37363534333231204e6f77206973207468652074696d6520666f722000', + 'bf-cbc'); -- blowfish-448 -SELECT encode(encrypt( -decode('fedcba9876543210', 'hex'), -decode('f0e1d2c3b4a5968778695a4b3c2d1e0f001122334455667704689104c2fd3b2f584023641aba61761f1f1f1f0e0e0e0effffffffffffffff', 'hex'), -'bf-ecb/pad:none'), 'hex'); --- result: c04504012e4e1f53 +SELECT encrypt('\xfedcba9876543210', + '\xf0e1d2c3b4a5968778695a4b3c2d1e0f001122334455667704689104c2fd3b2f584023641aba61761f1f1f1f0e0e0e0effffffffffffffff', + 'bf-ecb/pad:none'); -- empty data -select encode(encrypt('', 'foo', 'bf'), 'hex'); +select encrypt('', 'foo', 'bf'); -- 10 bytes key -select encode(encrypt('foo', '0123456789', 'bf'), 'hex'); +select encrypt('foo', '0123456789', 'bf'); -- 22 bytes key -select encode(encrypt('foo', '0123456789012345678901', 'bf'), 'hex'); +select encrypt('foo', '0123456789012345678901', 'bf'); -- decrypt -select decrypt(encrypt('foo', '0123456', 'bf'), '0123456', 'bf'); +select encode(decrypt(encrypt('foo', '0123456', 'bf'), '0123456', 'bf'), 'escape'); -- iv -select encode(encrypt_iv('foo', '0123456', 'abcd', 'bf'), 'hex'); -select decrypt_iv(decode('95c7e89322525d59', 'hex'), '0123456', 'abcd', 'bf'); +select encrypt_iv('foo', '0123456', 'abcd', 'bf'); +select encode(decrypt_iv('\x95c7e89322525d59', '0123456', 'abcd', 'bf'), 'escape'); -- long message -select encode(encrypt('Lets try a longer message.', '0123456789', 'bf'), 'hex'); -select decrypt(encrypt('Lets try a longer message.', '0123456789', 'bf'), '0123456789', 'bf'); +select encrypt('Lets try a longer message.', '0123456789', 'bf'); +select encode(decrypt(encrypt('Lets try a longer message.', '0123456789', 'bf'), '0123456789', 'bf'), 'escape'); diff --git a/contrib/pgcrypto/sql/cast5.sql b/contrib/pgcrypto/sql/cast5.sql index 527a76a160..b3089b2446 100644 --- a/contrib/pgcrypto/sql/cast5.sql +++ b/contrib/pgcrypto/sql/cast5.sql @@ -1,47 +1,32 @@ -- -- Cast5 cipher -- --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; -- test vectors from RFC2144 -- 128 bit key -SELECT encode(encrypt( -decode('01 23 45 67 89 AB CD EF', 'hex'), -decode('01 23 45 67 12 34 56 78 23 45 67 89 34 56 78 9A', 'hex'), -'cast5-ecb/pad:none'), 'hex'); --- result: 23 8B 4F E5 84 7E 44 B2 +SELECT encrypt('\x0123456789ABCDEF', '\x0123456712345678234567893456789A', 'cast5-ecb/pad:none'); -- 80 bit key -SELECT encode(encrypt( -decode('01 23 45 67 89 AB CD EF', 'hex'), -decode('01 23 45 67 12 34 56 78 23 45', 'hex'), -'cast5-ecb/pad:none'), 'hex'); --- result: EB 6A 71 1A 2C 02 27 1B +SELECT encrypt('\x0123456789ABCDEF', '\x01234567123456782345', 'cast5-ecb/pad:none'); -- 40 bit key -SELECT encode(encrypt( -decode('01 23 45 67 89 AB CD EF', 'hex'), -decode('01 23 45 67 12', 'hex'), -'cast5-ecb/pad:none'), 'hex'); --- result: 7A C8 16 D1 6E 9B 30 2E +SELECT encrypt('\x0123456789ABCDEF', '\x0123456712', 'cast5-ecb/pad:none'); -- cbc -- empty data -select encode( encrypt('', 'foo', 'cast5'), 'hex'); +select encrypt('', 'foo', 'cast5'); -- 10 bytes key -select encode( encrypt('foo', '0123456789', 'cast5'), 'hex'); +select encrypt('foo', '0123456789', 'cast5'); -- decrypt -select decrypt(encrypt('foo', '0123456', 'cast5'), '0123456', 'cast5'); +select encode(decrypt(encrypt('foo', '0123456', 'cast5'), '0123456', 'cast5'), 'escape'); -- iv -select encode(encrypt_iv('foo', '0123456', 'abcd', 'cast5'), 'hex'); -select decrypt_iv(decode('384a970695ce016a', 'hex'), - '0123456', 'abcd', 'cast5'); +select encrypt_iv('foo', '0123456', 'abcd', 'cast5'); +select encode(decrypt_iv('\x384a970695ce016a', '0123456', 'abcd', 'cast5'), 'escape'); -- long message -select encode(encrypt('Lets try a longer message.', '0123456789', 'cast5'), 'hex'); -select decrypt(encrypt('Lets try a longer message.', '0123456789', 'cast5'), '0123456789', 'cast5'); +select encrypt('Lets try a longer message.', '0123456789', 'cast5'); +select encode(decrypt(encrypt('Lets try a longer message.', '0123456789', 'cast5'), '0123456789', 'cast5'), 'escape'); diff --git a/contrib/pgcrypto/sql/des.sql b/contrib/pgcrypto/sql/des.sql index 6abc5b5ffe..08c77a4a78 100644 --- a/contrib/pgcrypto/sql/des.sql +++ b/contrib/pgcrypto/sql/des.sql @@ -1,29 +1,24 @@ -- -- DES cipher -- --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; -- no official test vectors atm -- from blowfish.sql -SELECT encode(encrypt( -decode('0123456789abcdef', 'hex'), -decode('fedcba9876543210', 'hex'), -'des-ecb/pad:none'), 'hex'); +SELECT encrypt('\x0123456789abcdef', '\xfedcba9876543210', 'des-ecb/pad:none'); -- empty data -select encode( encrypt('', 'foo', 'des'), 'hex'); +select encrypt('', 'foo', 'des'); -- 8 bytes key -select encode( encrypt('foo', '01234589', 'des'), 'hex'); +select encrypt('foo', '01234589', 'des'); -- decrypt -select decrypt(encrypt('foo', '0123456', 'des'), '0123456', 'des'); +select encode(decrypt(encrypt('foo', '0123456', 'des'), '0123456', 'des'), 'escape'); -- iv -select encode(encrypt_iv('foo', '0123456', 'abcd', 'des'), 'hex'); -select decrypt_iv(decode('50735067b073bb93', 'hex'), '0123456', 'abcd', 'des'); +select encrypt_iv('foo', '0123456', 'abcd', 'des'); +select encode(decrypt_iv('\x50735067b073bb93', '0123456', 'abcd', 'des'), 'escape'); -- long message -select encode(encrypt('Lets try a longer message.', '01234567', 'des'), 'hex'); -select decrypt(encrypt('Lets try a longer message.', '01234567', 'des'), '01234567', 'des'); +select encrypt('Lets try a longer message.', '01234567', 'des'); +select encode(decrypt(encrypt('Lets try a longer message.', '01234567', 'des'), '01234567', 'des'), 'escape'); diff --git a/contrib/pgcrypto/sql/hmac-md5.sql b/contrib/pgcrypto/sql/hmac-md5.sql index 71dcd089e6..981ed097a5 100644 --- a/contrib/pgcrypto/sql/hmac-md5.sql +++ b/contrib/pgcrypto/sql/hmac-md5.sql @@ -2,43 +2,43 @@ -- HMAC-MD5 -- -SELECT encode(hmac( +SELECT hmac( 'Hi There', -decode('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b', 'hex'), -'md5'), 'hex'); +'\x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b'::bytea, +'md5'); -- 2 -SELECT encode(hmac( +SELECT hmac( 'Jefe', 'what do ya want for nothing?', -'md5'), 'hex'); +'md5'); -- 3 -SELECT encode(hmac( -decode('dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd', 'hex'), -decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'), -'md5'), 'hex'); +SELECT hmac( +'\xdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd'::bytea, +'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea, +'md5'); -- 4 -SELECT encode(hmac( -decode('cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd', 'hex'), -decode('0102030405060708090a0b0c0d0e0f10111213141516171819', 'hex'), -'md5'), 'hex'); +SELECT hmac( +'\xcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd'::bytea, +'\x0102030405060708090a0b0c0d0e0f10111213141516171819'::bytea, +'md5'); -- 5 -SELECT encode(hmac( +SELECT hmac( 'Test With Truncation', -decode('0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c', 'hex'), -'md5'), 'hex'); +'\x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c'::bytea, +'md5'); -- 6 -SELECT encode(hmac( +SELECT hmac( 'Test Using Larger Than Block-Size Key - Hash Key First', -decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'), -'md5'), 'hex'); +'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea, +'md5'); -- 7 -SELECT encode(hmac( +SELECT hmac( 'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data', -decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'), -'md5'), 'hex'); +'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea, +'md5'); diff --git a/contrib/pgcrypto/sql/hmac-sha1.sql b/contrib/pgcrypto/sql/hmac-sha1.sql index 3bc965578c..f9a7b71d45 100644 --- a/contrib/pgcrypto/sql/hmac-sha1.sql +++ b/contrib/pgcrypto/sql/hmac-sha1.sql @@ -2,43 +2,43 @@ -- HMAC-SHA1 -- -SELECT encode(hmac( +SELECT hmac( 'Hi There', -decode('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b', 'hex'), -'sha1'), 'hex'); +'\x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b'::bytea, +'sha1'); -- 2 -SELECT encode(hmac( +SELECT hmac( 'Jefe', 'what do ya want for nothing?', -'sha1'), 'hex'); +'sha1'); -- 3 -SELECT encode(hmac( -decode('dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd', 'hex'), -decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'), -'sha1'), 'hex'); +SELECT hmac( +'\xdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd'::bytea, +'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea, +'sha1'); -- 4 -SELECT encode(hmac( -decode('cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd', 'hex'), -decode('0102030405060708090a0b0c0d0e0f10111213141516171819', 'hex'), -'sha1'), 'hex'); +SELECT hmac( +'\xcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd'::bytea, +'\x0102030405060708090a0b0c0d0e0f10111213141516171819'::bytea, +'sha1'); -- 5 -SELECT encode(hmac( +SELECT hmac( 'Test With Truncation', -decode('0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c', 'hex'), -'sha1'), 'hex'); +'\x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c'::bytea, +'sha1'); -- 6 -SELECT encode(hmac( +SELECT hmac( 'Test Using Larger Than Block-Size Key - Hash Key First', -decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'), -'sha1'), 'hex'); +'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea, +'sha1'); -- 7 -SELECT encode(hmac( +SELECT hmac( 'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data', -decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'), -'sha1'), 'hex'); +'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea, +'sha1'); diff --git a/contrib/pgcrypto/sql/init.sql b/contrib/pgcrypto/sql/init.sql index 5c3d100576..6388187996 100644 --- a/contrib/pgcrypto/sql/init.sql +++ b/contrib/pgcrypto/sql/init.sql @@ -4,13 +4,6 @@ CREATE EXTENSION pgcrypto; --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; - --- check for encoding fn's -SELECT encode('foo', 'hex'); -SELECT decode('666f6f', 'hex'); - -- check error handling select gen_salt('foo'); select digest('foo', 'foo'); diff --git a/contrib/pgcrypto/sql/md5.sql b/contrib/pgcrypto/sql/md5.sql index 4df910fafb..040361316b 100644 --- a/contrib/pgcrypto/sql/md5.sql +++ b/contrib/pgcrypto/sql/md5.sql @@ -2,10 +2,10 @@ -- MD5 message digest -- -SELECT encode(digest('', 'md5'), 'hex'); -SELECT encode(digest('a', 'md5'), 'hex'); -SELECT encode(digest('abc', 'md5'), 'hex'); -SELECT encode(digest('message digest', 'md5'), 'hex'); -SELECT encode(digest('abcdefghijklmnopqrstuvwxyz', 'md5'), 'hex'); -SELECT encode(digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'md5'), 'hex'); -SELECT encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'md5'), 'hex'); +SELECT digest('', 'md5'); +SELECT digest('a', 'md5'); +SELECT digest('abc', 'md5'); +SELECT digest('message digest', 'md5'); +SELECT digest('abcdefghijklmnopqrstuvwxyz', 'md5'); +SELECT digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'md5'); +SELECT digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'md5'); diff --git a/contrib/pgcrypto/sql/pgp-armor.sql b/contrib/pgcrypto/sql/pgp-armor.sql index a277a1894c..736b54206f 100644 --- a/contrib/pgcrypto/sql/pgp-armor.sql +++ b/contrib/pgcrypto/sql/pgp-armor.sql @@ -1,19 +1,17 @@ -- -- PGP Armor -- --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; select armor(''); select armor('test'); -select dearmor(armor('')); -select dearmor(armor('zooka')); +select encode(dearmor(armor('')), 'escape'); +select encode(dearmor(armor('zooka')), 'escape'); select armor('0123456789abcdef0123456789abcdef0123456789abcdef 0123456789abcdef0123456789abcdef0123456789abcdef'); -- lots formatting -select dearmor(' a pgp msg: +select encode(dearmor(' a pgp msg: -----BEGIN PGP MESSAGE----- Comment: Some junk @@ -22,10 +20,10 @@ =D5cR ------END PGP MESSAGE-----'); +-----END PGP MESSAGE-----'), 'escape'); -- lots messages -select dearmor(' +select encode(dearmor(' wrong packet: -----BEGIN PGP MESSAGE----- @@ -46,7 +44,7 @@ d3Jvbmc= =vCYP -----END PGP MESSAGE----- -'); +'), 'escape'); -- bad crc select dearmor(' diff --git a/contrib/pgcrypto/sql/pgp-decrypt.sql b/contrib/pgcrypto/sql/pgp-decrypt.sql index 557948d7c7..347ec2abf1 100644 --- a/contrib/pgcrypto/sql/pgp-decrypt.sql +++ b/contrib/pgcrypto/sql/pgp-decrypt.sql @@ -208,7 +208,7 @@ '), 'x'); -- Checking various data -select encode(digest(pgp_sym_decrypt(dearmor(' +select digest(pgp_sym_decrypt(dearmor(' -----BEGIN PGP MESSAGE----- Comment: dat1.aes.sha1.mdc.s2k3.z0 @@ -216,10 +216,9 @@ Xtx3kDqnhUq9Z1fS3qPbi5iNP2A9NxOBxPWz2JzxhydANlgbxg== =W/ik -----END PGP MESSAGE----- -'), '0123456789abcdefghij'), 'sha1'), 'hex'); --- expected: 0225e3ede6f2587b076d021a189ff60aad67e066 +'), '0123456789abcdefghij'), 'sha1'); -select encode(digest(pgp_sym_decrypt(dearmor(' +select digest(pgp_sym_decrypt(dearmor(' -----BEGIN PGP MESSAGE----- Comment: dat2.aes.sha1.mdc.s2k3.z0 @@ -227,10 +226,9 @@ SaV9L04ky1qECNDx3XjnoKLC+H7IOQ== =Fxen -----END PGP MESSAGE----- -'), '0123456789abcdefghij'), 'sha1'), 'hex'); --- expected: da39a3ee5e6b4b0d3255bfef95601890afd80709 +'), '0123456789abcdefghij'), 'sha1'); -select encode(digest(pgp_sym_decrypt(dearmor(' +select digest(pgp_sym_decrypt(dearmor(' -----BEGIN PGP MESSAGE----- Comment: dat3.aes.sha1.mdc.s2k3.z0 @@ -239,11 +237,10 @@ 73Hb8m1yRhQK =ivrD -----END PGP MESSAGE----- -'), '0123456789abcdefghij'), 'sha1'), 'hex'); --- expected: 5e5c135efc0dd00633efc6dfd6e731ea408a5b4c +'), '0123456789abcdefghij'), 'sha1'); -- Checking CRLF -select encode(digest(pgp_sym_decrypt(dearmor(' +select digest(pgp_sym_decrypt(dearmor(' -----BEGIN PGP MESSAGE----- Comment: crlf mess @@ -251,10 +248,9 @@ a3nsOzKTXUfS9VyaXo8IrncM6n7fdaXpwba/3tNsAhJG4lDv1k4g9v8Ix2dfv6Rs =mBP9 -----END PGP MESSAGE----- -'), 'key', 'convert-crlf=0'), 'sha1'), 'hex'); --- expected: 9353062be7720f1446d30b9e75573a4833886784 +'), 'key', 'convert-crlf=0'), 'sha1'); -select encode(digest(pgp_sym_decrypt(dearmor(' +select digest(pgp_sym_decrypt(dearmor(' -----BEGIN PGP MESSAGE----- Comment: crlf mess @@ -262,8 +258,7 @@ a3nsOzKTXUfS9VyaXo8IrncM6n7fdaXpwba/3tNsAhJG4lDv1k4g9v8Ix2dfv6Rs =mBP9 -----END PGP MESSAGE----- -'), 'key', 'convert-crlf=1'), 'sha1'), 'hex'); --- expected: 7efefcab38467f7484d6fa43dc86cf5281bd78e2 +'), 'key', 'convert-crlf=1'), 'sha1'); -- check BUG #11905, problem with messages 6 less than a power of 2. select pgp_sym_decrypt(pgp_sym_encrypt(repeat('x',65530),'1'),'1') = repeat('x',65530); diff --git a/contrib/pgcrypto/sql/pgp-encrypt.sql b/contrib/pgcrypto/sql/pgp-encrypt.sql index ed9d2c8127..ed8b17776b 100644 --- a/contrib/pgcrypto/sql/pgp-encrypt.sql +++ b/contrib/pgcrypto/sql/pgp-encrypt.sql @@ -1,8 +1,6 @@ -- -- PGP encrypt -- --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; select pgp_sym_decrypt(pgp_sym_encrypt('Secret.', 'key'), 'key'); @@ -30,7 +28,7 @@ select pgp_sym_decrypt(pgp_sym_encrypt_bytea('Binary', 'baz'), 'baz'); -- text as bytea -select pgp_sym_decrypt_bytea(pgp_sym_encrypt('Text', 'baz'), 'baz'); +select encode(pgp_sym_decrypt_bytea(pgp_sym_encrypt('Text', 'baz'), 'baz'), 'escape'); -- algorithm change @@ -95,12 +93,12 @@ 'key', 'expect-disable-mdc=1'); -- crlf -select encode(pgp_sym_decrypt_bytea( +select pgp_sym_decrypt_bytea( pgp_sym_encrypt(E'1\n2\n3\r\n', 'key', 'convert-crlf=1'), - 'key'), 'hex'); + 'key'); -- conversion should be lossless -select encode(digest(pgp_sym_decrypt( +select digest(pgp_sym_decrypt( pgp_sym_encrypt(E'\r\n0\n1\r\r\n\n2\r', 'key', 'convert-crlf=1'), - 'key', 'convert-crlf=1'), 'sha1'), 'hex') as result, - encode(digest(E'\r\n0\n1\r\r\n\n2\r', 'sha1'), 'hex') as expect; + 'key', 'convert-crlf=1'), 'sha1') as result, + digest(E'\r\n0\n1\r\r\n\n2\r', 'sha1') as expect; diff --git a/contrib/pgcrypto/sql/pgp-pubkey-encrypt.sql b/contrib/pgcrypto/sql/pgp-pubkey-encrypt.sql index 879b47f871..c9edbc679c 100644 --- a/contrib/pgcrypto/sql/pgp-pubkey-encrypt.sql +++ b/contrib/pgcrypto/sql/pgp-pubkey-encrypt.sql @@ -1,8 +1,6 @@ -- -- PGP Public Key Encryption -- --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; -- successful encrypt/decrypt select pgp_pub_decrypt( @@ -38,9 +36,9 @@ from keytbl where keytbl.id=1; -- does text-to-bytea works -select pgp_pub_decrypt_bytea( +select encode(pgp_pub_decrypt_bytea( pgp_pub_encrypt('Secret msg', dearmor(pubkey)), - dearmor(seckey)) + dearmor(seckey)), 'escape') from keytbl where keytbl.id=1; -- and bytea-to-text? diff --git a/contrib/pgcrypto/sql/rijndael.sql b/contrib/pgcrypto/sql/rijndael.sql index a9bcbf33d0..b162fc61f5 100644 --- a/contrib/pgcrypto/sql/rijndael.sql +++ b/contrib/pgcrypto/sql/rijndael.sql @@ -1,63 +1,60 @@ -- -- AES cipher (aka Rijndael-128, -192, or -256) -- --- ensure consistent test output regardless of the default bytea format -SET bytea_output TO escape; -- some standard Rijndael testvalues -SELECT encode(encrypt( -decode('00112233445566778899aabbccddeeff', 'hex'), -decode('000102030405060708090a0b0c0d0e0f', 'hex'), -'aes-ecb/pad:none'), 'hex'); +SELECT encrypt( +'\x00112233445566778899aabbccddeeff', +'\x000102030405060708090a0b0c0d0e0f', +'aes-ecb/pad:none'); -SELECT encode(encrypt( -decode('00112233445566778899aabbccddeeff', 'hex'), -decode('000102030405060708090a0b0c0d0e0f1011121314151617', 'hex'), -'aes-ecb/pad:none'), 'hex'); +SELECT encrypt( +'\x00112233445566778899aabbccddeeff', +'\x000102030405060708090a0b0c0d0e0f1011121314151617', +'aes-ecb/pad:none'); -SELECT encode(encrypt( -decode('00112233445566778899aabbccddeeff', 'hex'), -decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', 'hex'), -'aes-ecb/pad:none'), 'hex'); +SELECT encrypt( +'\x00112233445566778899aabbccddeeff', +'\x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', +'aes-ecb/pad:none'); -- cbc -SELECT encode(encrypt( -decode('00112233445566778899aabbccddeeff', 'hex'), -decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', 'hex'), -'aes-cbc/pad:none'), 'hex'); +SELECT encrypt( +'\x00112233445566778899aabbccddeeff', +'\x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', +'aes-cbc/pad:none'); -- key padding -SELECT encode(encrypt( -decode('0011223344', 'hex'), -decode('000102030405', 'hex'), -'aes-cbc'), 'hex'); +SELECT encrypt( +'\x0011223344', +'\x000102030405', +'aes-cbc'); -SELECT encode(encrypt( -decode('0011223344', 'hex'), -decode('000102030405060708090a0b0c0d0e0f10111213', 'hex'), -'aes-cbc'), 'hex'); +SELECT encrypt( +'\x0011223344', +'\x000102030405060708090a0b0c0d0e0f10111213', +'aes-cbc'); -SELECT encode(encrypt( -decode('0011223344', 'hex'), -decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b', 'hex'), -'aes-cbc'), 'hex'); +SELECT encrypt( +'\x0011223344', +'\x000102030405060708090a0b0c0d0e0f101112131415161718191a1b', +'aes-cbc'); -- empty data -select encode(encrypt('', 'foo', 'aes'), 'hex'); +select encrypt('', 'foo', 'aes'); -- 10 bytes key -select encode(encrypt('foo', '0123456789', 'aes'), 'hex'); +select encrypt('foo', '0123456789', 'aes'); -- 22 bytes key -select encode(encrypt('foo', '0123456789012345678901', 'aes'), 'hex'); +select encrypt('foo', '0123456789012345678901', 'aes'); -- decrypt -select decrypt(encrypt('foo', '0123456', 'aes'), '0123456', 'aes'); +select encode(decrypt(encrypt('foo', '0123456', 'aes'), '0123456', 'aes'), 'escape'); -- iv -select encode(encrypt_iv('foo', '0123456', 'abcd', 'aes'), 'hex'); -select decrypt_iv(decode('2c24cb7da91d6d5699801268b0f5adad', 'hex'), - '0123456', 'abcd', 'aes'); +select encrypt_iv('foo', '0123456', 'abcd', 'aes'); +select encode(decrypt_iv('\x2c24cb7da91d6d5699801268b0f5adad', '0123456', 'abcd', 'aes'), 'escape'); -- long message -select encode(encrypt('Lets try a longer message.', '0123456789', 'aes'), 'hex'); -select decrypt(encrypt('Lets try a longer message.', '0123456789', 'aes'), '0123456789', 'aes'); +select encrypt('Lets try a longer message.', '0123456789', 'aes'); +select encode(decrypt(encrypt('Lets try a longer message.', '0123456789', 'aes'), '0123456789', 'aes'), 'escape'); diff --git a/contrib/pgcrypto/sql/sha1.sql b/contrib/pgcrypto/sql/sha1.sql index 32b1f0698f..6d1f24ebf3 100644 --- a/contrib/pgcrypto/sql/sha1.sql +++ b/contrib/pgcrypto/sql/sha1.sql @@ -2,10 +2,10 @@ -- SHA1 message digest -- -SELECT encode(digest('', 'sha1'), 'hex'); -SELECT encode(digest('a', 'sha1'), 'hex'); -SELECT encode(digest('abc', 'sha1'), 'hex'); -SELECT encode(digest('message digest', 'sha1'), 'hex'); -SELECT encode(digest('abcdefghijklmnopqrstuvwxyz', 'sha1'), 'hex'); -SELECT encode(digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'sha1'), 'hex'); -SELECT encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha1'), 'hex'); +SELECT digest('', 'sha1'); +SELECT digest('a', 'sha1'); +SELECT digest('abc', 'sha1'); +SELECT digest('message digest', 'sha1'); +SELECT digest('abcdefghijklmnopqrstuvwxyz', 'sha1'); +SELECT digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'sha1'); +SELECT digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha1'); diff --git a/contrib/pgcrypto/sql/sha2.sql b/contrib/pgcrypto/sql/sha2.sql index 3fe63d3e87..3aafd35407 100644 --- a/contrib/pgcrypto/sql/sha2.sql +++ b/contrib/pgcrypto/sql/sha2.sql @@ -3,31 +3,31 @@ -- -- SHA224 -SELECT encode(digest('', 'sha224'), 'hex'); -SELECT encode(digest('a', 'sha224'), 'hex'); -SELECT encode(digest('abc', 'sha224'), 'hex'); -SELECT encode(digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha224'), 'hex'); -SELECT encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha224'), 'hex'); +SELECT digest('', 'sha224'); +SELECT digest('a', 'sha224'); +SELECT digest('abc', 'sha224'); +SELECT digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha224'); +SELECT digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha224'); -- SHA256 -SELECT encode(digest('', 'sha256'), 'hex'); -SELECT encode(digest('a', 'sha256'), 'hex'); -SELECT encode(digest('abc', 'sha256'), 'hex'); -SELECT encode(digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha256'), 'hex'); -SELECT encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha256'), 'hex'); +SELECT digest('', 'sha256'); +SELECT digest('a', 'sha256'); +SELECT digest('abc', 'sha256'); +SELECT digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha256'); +SELECT digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha256'); -- SHA384 -SELECT encode(digest('', 'sha384'), 'hex'); -SELECT encode(digest('a', 'sha384'), 'hex'); -SELECT encode(digest('abc', 'sha384'), 'hex'); -SELECT encode(digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha384'), 'hex'); -SELECT encode(digest('abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu', 'sha384'), 'hex'); -SELECT encode(digest('abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz', 'sha384'), 'hex'); +SELECT digest('', 'sha384'); +SELECT digest('a', 'sha384'); +SELECT digest('abc', 'sha384'); +SELECT digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha384'); +SELECT digest('abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu', 'sha384'); +SELECT digest('abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz', 'sha384'); -- SHA512 -SELECT encode(digest('', 'sha512'), 'hex'); -SELECT encode(digest('a', 'sha512'), 'hex'); -SELECT encode(digest('abc', 'sha512'), 'hex'); -SELECT encode(digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha512'), 'hex'); -SELECT encode(digest('abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu', 'sha512'), 'hex'); -SELECT encode(digest('abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz', 'sha512'), 'hex'); +SELECT digest('', 'sha512'); +SELECT digest('a', 'sha512'); +SELECT digest('abc', 'sha512'); +SELECT digest('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq', 'sha512'); +SELECT digest('abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu', 'sha512'); +SELECT digest('abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz', 'sha512'); -- 2.34.1