Revert commit 66c0185a3 and follow-on patches.
[pgsql.git] / contrib / pgcrypto / sql / blowfish.sql
blobc212cf2e3766290583ba95bd92bb4f34e235f949
1 --
2 -- Blowfish cipher
3 --
5 -- some standard Blowfish testvalues
6 SELECT encrypt('\x0000000000000000', '\x0000000000000000', 'bf-ecb/pad:none');
7 SELECT encrypt('\xffffffffffffffff', '\xffffffffffffffff', 'bf-ecb/pad:none');
8 SELECT encrypt('\x1000000000000001', '\x3000000000000000', 'bf-ecb/pad:none');
9 SELECT encrypt('\x1111111111111111', '\x1111111111111111', 'bf-ecb/pad:none');
10 SELECT encrypt('\x0123456789abcdef', '\xfedcba9876543210', 'bf-ecb/pad:none');
11 SELECT encrypt('\x01a1d6d039776742', '\xfedcba9876543210', 'bf-ecb/pad:none');
12 SELECT encrypt('\xffffffffffffffff', '\x0000000000000000', 'bf-ecb/pad:none');
14 -- setkey
15 SELECT encrypt('\xfedcba9876543210', '\xf0e1d2c3b4a5968778695a4b3c2d1e0f', 'bf-ecb/pad:none');
17 -- with padding
18 SELECT encrypt('\x01234567890123456789', '\x33443344334433443344334433443344', 'bf-ecb');
20 -- cbc
22 -- 28 bytes key
23 SELECT encrypt('\x6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5',
24                '\x37363534333231204e6f77206973207468652074696d6520666f7220',
25                'bf-cbc');
27 -- 29 bytes key
28 SELECT encrypt('\x6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc',
29                '\x37363534333231204e6f77206973207468652074696d6520666f722000',
30                'bf-cbc');
32 -- blowfish-448
33 SELECT encrypt('\xfedcba9876543210',
34                '\xf0e1d2c3b4a5968778695a4b3c2d1e0f001122334455667704689104c2fd3b2f584023641aba61761f1f1f1f0e0e0e0effffffffffffffff',
35                'bf-ecb/pad:none');
37 -- empty data
38 select encrypt('', 'foo', 'bf');
39 -- 10 bytes key
40 select encrypt('foo', '0123456789', 'bf');
41 -- 22 bytes key
42 select encrypt('foo', '0123456789012345678901', 'bf');
44 -- decrypt
45 select encode(decrypt(encrypt('foo', '0123456', 'bf'), '0123456', 'bf'), 'escape');
47 -- iv
48 select encrypt_iv('foo', '0123456', 'abcd', 'bf');
49 select encode(decrypt_iv('\x95c7e89322525d59', '0123456', 'abcd', 'bf'), 'escape');
51 -- long message
52 select encrypt('Lets try a longer message.', '0123456789', 'bf');
53 select encode(decrypt(encrypt('Lets try a longer message.', '0123456789', 'bf'), '0123456789', 'bf'), 'escape');