1-- 2-- Blowfish cipher 3-- 4-- ensure consistent test output regardless of the default bytea format 5SET bytea_output TO escape; 6 7-- some standard Blowfish testvalues 8SELECT encode(encrypt( 9decode('0000000000000000', 'hex'), 10decode('0000000000000000', 'hex'), 11'bf-ecb/pad:none'), 'hex'); 12 13SELECT encode(encrypt( 14decode('ffffffffffffffff', 'hex'), 15decode('ffffffffffffffff', 'hex'), 16'bf-ecb/pad:none'), 'hex'); 17 18SELECT encode(encrypt( 19decode('1000000000000001', 'hex'), 20decode('3000000000000000', 'hex'), 21'bf-ecb/pad:none'), 'hex'); 22 23SELECT encode(encrypt( 24decode('1111111111111111', 'hex'), 25decode('1111111111111111', 'hex'), 26'bf-ecb/pad:none'), 'hex'); 27 28SELECT encode(encrypt( 29decode('0123456789abcdef', 'hex'), 30decode('fedcba9876543210', 'hex'), 31'bf-ecb/pad:none'), 'hex'); 32 33SELECT encode(encrypt( 34decode('01a1d6d039776742', 'hex'), 35decode('fedcba9876543210', 'hex'), 36'bf-ecb/pad:none'), 'hex'); 37 38SELECT encode(encrypt( 39decode('ffffffffffffffff', 'hex'), 40decode('0000000000000000', 'hex'), 41'bf-ecb/pad:none'), 'hex'); 42 43-- setkey 44SELECT encode(encrypt( 45decode('fedcba9876543210', 'hex'), 46decode('f0e1d2c3b4a5968778695a4b3c2d1e0f', 'hex'), 47'bf-ecb/pad:none'), 'hex'); 48 49-- with padding 50SELECT encode(encrypt( 51decode('01234567890123456789', 'hex'), 52decode('33443344334433443344334433443344', 'hex'), 53'bf-ecb'), 'hex'); 54 55-- cbc 56 57-- 28 bytes key 58SELECT encode(encrypt( 59decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5', 'hex'), 60decode('37363534333231204e6f77206973207468652074696d6520666f7220', 'hex'), 61'bf-cbc'), 'hex'); 62 63-- 29 bytes key 64SELECT encode(encrypt( 65decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc', 'hex'), 66decode('37363534333231204e6f77206973207468652074696d6520666f722000', 'hex'), 67'bf-cbc'), 'hex'); 68 69-- blowfish-448 70SELECT encode(encrypt( 71decode('fedcba9876543210', 'hex'), 72decode('f0e1d2c3b4a5968778695a4b3c2d1e0f001122334455667704689104c2fd3b2f584023641aba61761f1f1f1f0e0e0e0effffffffffffffff', 'hex'), 73'bf-ecb/pad:none'), 'hex'); 74-- result: c04504012e4e1f53 75 76-- empty data 77select encode(encrypt('', 'foo', 'bf'), 'hex'); 78-- 10 bytes key 79select encode(encrypt('foo', '0123456789', 'bf'), 'hex'); 80-- 22 bytes key 81select encode(encrypt('foo', '0123456789012345678901', 'bf'), 'hex'); 82 83-- decrypt 84select decrypt(encrypt('foo', '0123456', 'bf'), '0123456', 'bf'); 85 86-- iv 87select encode(encrypt_iv('foo', '0123456', 'abcd', 'bf'), 'hex'); 88select decrypt_iv(decode('95c7e89322525d59', 'hex'), '0123456', 'abcd', 'bf'); 89 90-- long message 91select encode(encrypt('Lets try a longer message.', '0123456789', 'bf'), 'hex'); 92select decrypt(encrypt('Lets try a longer message.', '0123456789', 'bf'), '0123456789', 'bf'); 93