mirror of https://github.com/postgres/postgres
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. Discussion: https://www.postgresql.org/message-id/flat/17dcb4f7-7ac1-e2b6-d5f7-2dfba06cd9ee%40enterprisedb.compull/138/head
parent
00029deaf6
commit
814e1d9ff7
@ -1,95 +1,62 @@ |
|||||||
-- |
-- |
||||||
-- Blowfish cipher |
-- Blowfish cipher |
||||||
-- |
-- |
||||||
-- ensure consistent test output regardless of the default bytea format |
|
||||||
SET bytea_output TO escape; |
|
||||||
-- some standard Blowfish testvalues |
-- some standard Blowfish testvalues |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x0000000000000000', '\x0000000000000000', 'bf-ecb/pad:none'); |
||||||
decode('0000000000000000', 'hex'), |
|
||||||
decode('0000000000000000', 'hex'), |
|
||||||
'bf-ecb/pad:none'), 'hex'); |
|
||||||
ERROR: encrypt error: Cipher cannot be initialized ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\xffffffffffffffff', '\xffffffffffffffff', 'bf-ecb/pad:none'); |
||||||
decode('ffffffffffffffff', 'hex'), |
|
||||||
decode('ffffffffffffffff', 'hex'), |
|
||||||
'bf-ecb/pad:none'), 'hex'); |
|
||||||
ERROR: encrypt error: Cipher cannot be initialized ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x1000000000000001', '\x3000000000000000', 'bf-ecb/pad:none'); |
||||||
decode('1000000000000001', 'hex'), |
|
||||||
decode('3000000000000000', 'hex'), |
|
||||||
'bf-ecb/pad:none'), 'hex'); |
|
||||||
ERROR: encrypt error: Cipher cannot be initialized ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x1111111111111111', '\x1111111111111111', 'bf-ecb/pad:none'); |
||||||
decode('1111111111111111', 'hex'), |
|
||||||
decode('1111111111111111', 'hex'), |
|
||||||
'bf-ecb/pad:none'), 'hex'); |
|
||||||
ERROR: encrypt error: Cipher cannot be initialized ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x0123456789abcdef', '\xfedcba9876543210', 'bf-ecb/pad:none'); |
||||||
decode('0123456789abcdef', 'hex'), |
|
||||||
decode('fedcba9876543210', 'hex'), |
|
||||||
'bf-ecb/pad:none'), 'hex'); |
|
||||||
ERROR: encrypt error: Cipher cannot be initialized ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x01a1d6d039776742', '\xfedcba9876543210', 'bf-ecb/pad:none'); |
||||||
decode('01a1d6d039776742', 'hex'), |
|
||||||
decode('fedcba9876543210', 'hex'), |
|
||||||
'bf-ecb/pad:none'), 'hex'); |
|
||||||
ERROR: encrypt error: Cipher cannot be initialized ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\xffffffffffffffff', '\x0000000000000000', 'bf-ecb/pad:none'); |
||||||
decode('ffffffffffffffff', 'hex'), |
|
||||||
decode('0000000000000000', 'hex'), |
|
||||||
'bf-ecb/pad:none'), 'hex'); |
|
||||||
ERROR: encrypt error: Cipher cannot be initialized ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
-- setkey |
-- setkey |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\xfedcba9876543210', '\xf0e1d2c3b4a5968778695a4b3c2d1e0f', 'bf-ecb/pad:none'); |
||||||
decode('fedcba9876543210', 'hex'), |
|
||||||
decode('f0e1d2c3b4a5968778695a4b3c2d1e0f', 'hex'), |
|
||||||
'bf-ecb/pad:none'), 'hex'); |
|
||||||
ERROR: encrypt error: Cipher cannot be initialized ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
-- with padding |
-- with padding |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x01234567890123456789', '\x33443344334433443344334433443344', 'bf-ecb'); |
||||||
decode('01234567890123456789', 'hex'), |
|
||||||
decode('33443344334433443344334433443344', 'hex'), |
|
||||||
'bf-ecb'), 'hex'); |
|
||||||
ERROR: encrypt error: Cipher cannot be initialized ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
-- cbc |
-- cbc |
||||||
-- 28 bytes key |
-- 28 bytes key |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5', |
||||||
decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5', 'hex'), |
'\x37363534333231204e6f77206973207468652074696d6520666f7220', |
||||||
decode('37363534333231204e6f77206973207468652074696d6520666f7220', 'hex'), |
'bf-cbc'); |
||||||
'bf-cbc'), 'hex'); |
|
||||||
ERROR: encrypt error: Key was too big |
ERROR: encrypt error: Key was too big |
||||||
-- 29 bytes key |
-- 29 bytes key |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc', |
||||||
decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc', 'hex'), |
'\x37363534333231204e6f77206973207468652074696d6520666f722000', |
||||||
decode('37363534333231204e6f77206973207468652074696d6520666f722000', 'hex'), |
'bf-cbc'); |
||||||
'bf-cbc'), 'hex'); |
|
||||||
ERROR: encrypt error: Key was too big |
ERROR: encrypt error: Key was too big |
||||||
-- blowfish-448 |
-- blowfish-448 |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\xfedcba9876543210', |
||||||
decode('fedcba9876543210', 'hex'), |
'\xf0e1d2c3b4a5968778695a4b3c2d1e0f001122334455667704689104c2fd3b2f584023641aba61761f1f1f1f0e0e0e0effffffffffffffff', |
||||||
decode('f0e1d2c3b4a5968778695a4b3c2d1e0f001122334455667704689104c2fd3b2f584023641aba61761f1f1f1f0e0e0e0effffffffffffffff', 'hex'), |
'bf-ecb/pad:none'); |
||||||
'bf-ecb/pad:none'), 'hex'); |
|
||||||
ERROR: encrypt error: Key was too big |
ERROR: encrypt error: Key was too big |
||||||
-- result: c04504012e4e1f53 |
|
||||||
-- empty data |
-- empty data |
||||||
select encode(encrypt('', 'foo', 'bf'), 'hex'); |
select encrypt('', 'foo', 'bf'); |
||||||
ERROR: encrypt error: Cipher cannot be initialized ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
-- 10 bytes key |
-- 10 bytes key |
||||||
select encode(encrypt('foo', '0123456789', 'bf'), 'hex'); |
select encrypt('foo', '0123456789', 'bf'); |
||||||
ERROR: encrypt error: Cipher cannot be initialized ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
-- 22 bytes key |
-- 22 bytes key |
||||||
select encode(encrypt('foo', '0123456789012345678901', 'bf'), 'hex'); |
select encrypt('foo', '0123456789012345678901', 'bf'); |
||||||
ERROR: encrypt error: Key was too big |
ERROR: encrypt error: Key was too big |
||||||
-- decrypt |
-- 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 ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
-- iv |
-- 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 ? |
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 ? |
ERROR: decrypt_iv error: Cipher cannot be initialized ? |
||||||
-- long message |
-- 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 ? |
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 ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
|
|||||||
@ -1,48 +1,33 @@ |
|||||||
-- |
-- |
||||||
-- Cast5 cipher |
-- Cast5 cipher |
||||||
-- |
-- |
||||||
-- ensure consistent test output regardless of the default bytea format |
|
||||||
SET bytea_output TO escape; |
|
||||||
-- test vectors from RFC2144 |
-- test vectors from RFC2144 |
||||||
-- 128 bit key |
-- 128 bit key |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x0123456789ABCDEF', '\x0123456712345678234567893456789A', 'cast5-ecb/pad:none'); |
||||||
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'); |
|
||||||
ERROR: encrypt error: Cipher cannot be initialized ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
-- result: 23 8B 4F E5 84 7E 44 B2 |
|
||||||
-- 80 bit key |
-- 80 bit key |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x0123456789ABCDEF', '\x01234567123456782345', 'cast5-ecb/pad:none'); |
||||||
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'); |
|
||||||
ERROR: encrypt error: Cipher cannot be initialized ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
-- result: EB 6A 71 1A 2C 02 27 1B |
|
||||||
-- 40 bit key |
-- 40 bit key |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x0123456789ABCDEF', '\x0123456712', 'cast5-ecb/pad:none'); |
||||||
decode('01 23 45 67 89 AB CD EF', 'hex'), |
|
||||||
decode('01 23 45 67 12', 'hex'), |
|
||||||
'cast5-ecb/pad:none'), 'hex'); |
|
||||||
ERROR: encrypt error: Cipher cannot be initialized ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
-- result: 7A C8 16 D1 6E 9B 30 2E |
|
||||||
-- cbc |
-- cbc |
||||||
-- empty data |
-- empty data |
||||||
select encode( encrypt('', 'foo', 'cast5'), 'hex'); |
select encrypt('', 'foo', 'cast5'); |
||||||
ERROR: encrypt error: Cipher cannot be initialized ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
-- 10 bytes key |
-- 10 bytes key |
||||||
select encode( encrypt('foo', '0123456789', 'cast5'), 'hex'); |
select encrypt('foo', '0123456789', 'cast5'); |
||||||
ERROR: encrypt error: Cipher cannot be initialized ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
-- decrypt |
-- 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 ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
-- iv |
-- 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 ? |
ERROR: encrypt_iv error: Cipher cannot be initialized ? |
||||||
select decrypt_iv(decode('384a970695ce016a', 'hex'), |
select encode(decrypt_iv('\x384a970695ce016a', '0123456', 'abcd', 'cast5'), 'escape'); |
||||||
'0123456', 'abcd', 'cast5'); |
|
||||||
ERROR: decrypt_iv error: Cipher cannot be initialized ? |
ERROR: decrypt_iv error: Cipher cannot be initialized ? |
||||||
-- long message |
-- 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 ? |
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 ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
|
|||||||
@ -1,31 +1,26 @@ |
|||||||
-- |
-- |
||||||
-- DES cipher |
-- DES cipher |
||||||
-- |
-- |
||||||
-- ensure consistent test output regardless of the default bytea format |
|
||||||
SET bytea_output TO escape; |
|
||||||
-- no official test vectors atm |
-- no official test vectors atm |
||||||
-- from blowfish.sql |
-- from blowfish.sql |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x0123456789abcdef', '\xfedcba9876543210', 'des-ecb/pad:none'); |
||||||
decode('0123456789abcdef', 'hex'), |
|
||||||
decode('fedcba9876543210', 'hex'), |
|
||||||
'des-ecb/pad:none'), 'hex'); |
|
||||||
ERROR: encrypt error: Cipher cannot be initialized ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
-- empty data |
-- empty data |
||||||
select encode( encrypt('', 'foo', 'des'), 'hex'); |
select encrypt('', 'foo', 'des'); |
||||||
ERROR: encrypt error: Cipher cannot be initialized ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
-- 8 bytes key |
-- 8 bytes key |
||||||
select encode( encrypt('foo', '01234589', 'des'), 'hex'); |
select encrypt('foo', '01234589', 'des'); |
||||||
ERROR: encrypt error: Cipher cannot be initialized ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
-- decrypt |
-- 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 ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
-- iv |
-- 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 ? |
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 ? |
ERROR: decrypt_iv error: Cipher cannot be initialized ? |
||||||
-- long message |
-- 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 ? |
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 ? |
ERROR: encrypt error: Cipher cannot be initialized ? |
||||||
|
|||||||
@ -1,72 +1,72 @@ |
|||||||
-- |
-- |
||||||
-- HMAC-MD5 |
-- HMAC-MD5 |
||||||
-- |
-- |
||||||
SELECT encode(hmac( |
SELECT hmac( |
||||||
'Hi There', |
'Hi There', |
||||||
decode('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b', 'hex'), |
'\x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b'::bytea, |
||||||
'md5'), 'hex'); |
'md5'); |
||||||
encode |
hmac |
||||||
---------------------------------- |
------------------------------------ |
||||||
9294727a3638bb1c13f48ef8158bfc9d |
\x9294727a3638bb1c13f48ef8158bfc9d |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
-- 2 |
-- 2 |
||||||
SELECT encode(hmac( |
SELECT hmac( |
||||||
'Jefe', |
'Jefe', |
||||||
'what do ya want for nothing?', |
'what do ya want for nothing?', |
||||||
'md5'), 'hex'); |
'md5'); |
||||||
encode |
hmac |
||||||
---------------------------------- |
------------------------------------ |
||||||
813aead7c4a34bff01a16d61368e7c13 |
\x813aead7c4a34bff01a16d61368e7c13 |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
-- 3 |
-- 3 |
||||||
SELECT encode(hmac( |
SELECT hmac( |
||||||
decode('dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd', 'hex'), |
'\xdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd'::bytea, |
||||||
decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'), |
'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea, |
||||||
'md5'), 'hex'); |
'md5'); |
||||||
encode |
hmac |
||||||
---------------------------------- |
------------------------------------ |
||||||
56be34521d144c88dbb8c733f0e8b3f6 |
\x56be34521d144c88dbb8c733f0e8b3f6 |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
-- 4 |
-- 4 |
||||||
SELECT encode(hmac( |
SELECT hmac( |
||||||
decode('cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd', 'hex'), |
'\xcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd'::bytea, |
||||||
decode('0102030405060708090a0b0c0d0e0f10111213141516171819', 'hex'), |
'\x0102030405060708090a0b0c0d0e0f10111213141516171819'::bytea, |
||||||
'md5'), 'hex'); |
'md5'); |
||||||
encode |
hmac |
||||||
---------------------------------- |
------------------------------------ |
||||||
697eaf0aca3a3aea3a75164746ffaa79 |
\x697eaf0aca3a3aea3a75164746ffaa79 |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
-- 5 |
-- 5 |
||||||
SELECT encode(hmac( |
SELECT hmac( |
||||||
'Test With Truncation', |
'Test With Truncation', |
||||||
decode('0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c', 'hex'), |
'\x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c'::bytea, |
||||||
'md5'), 'hex'); |
'md5'); |
||||||
encode |
hmac |
||||||
---------------------------------- |
------------------------------------ |
||||||
56461ef2342edc00f9bab995690efd4c |
\x56461ef2342edc00f9bab995690efd4c |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
-- 6 |
-- 6 |
||||||
SELECT encode(hmac( |
SELECT hmac( |
||||||
'Test Using Larger Than Block-Size Key - Hash Key First', |
'Test Using Larger Than Block-Size Key - Hash Key First', |
||||||
decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'), |
'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea, |
||||||
'md5'), 'hex'); |
'md5'); |
||||||
encode |
hmac |
||||||
---------------------------------- |
------------------------------------ |
||||||
6b1ab7fe4bd7bf8f0b62e6ce61b9d0cd |
\x6b1ab7fe4bd7bf8f0b62e6ce61b9d0cd |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
-- 7 |
-- 7 |
||||||
SELECT encode(hmac( |
SELECT hmac( |
||||||
'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data', |
'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data', |
||||||
decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'), |
'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea, |
||||||
'md5'), 'hex'); |
'md5'); |
||||||
encode |
hmac |
||||||
---------------------------------- |
------------------------------------ |
||||||
6f630fad67cda0ee1fb1f562db3aa53e |
\x6f630fad67cda0ee1fb1f562db3aa53e |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
|
|||||||
@ -1,72 +1,72 @@ |
|||||||
-- |
-- |
||||||
-- HMAC-SHA1 |
-- HMAC-SHA1 |
||||||
-- |
-- |
||||||
SELECT encode(hmac( |
SELECT hmac( |
||||||
'Hi There', |
'Hi There', |
||||||
decode('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b', 'hex'), |
'\x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b'::bytea, |
||||||
'sha1'), 'hex'); |
'sha1'); |
||||||
encode |
hmac |
||||||
------------------------------------------ |
-------------------------------------------- |
||||||
675b0b3a1b4ddf4e124872da6c2f632bfed957e9 |
\x675b0b3a1b4ddf4e124872da6c2f632bfed957e9 |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
-- 2 |
-- 2 |
||||||
SELECT encode(hmac( |
SELECT hmac( |
||||||
'Jefe', |
'Jefe', |
||||||
'what do ya want for nothing?', |
'what do ya want for nothing?', |
||||||
'sha1'), 'hex'); |
'sha1'); |
||||||
encode |
hmac |
||||||
------------------------------------------ |
-------------------------------------------- |
||||||
156d4c35468a0339f3fa57a067bf47f814eb7a57 |
\x156d4c35468a0339f3fa57a067bf47f814eb7a57 |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
-- 3 |
-- 3 |
||||||
SELECT encode(hmac( |
SELECT hmac( |
||||||
decode('dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd', 'hex'), |
'\xdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd'::bytea, |
||||||
decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'), |
'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea, |
||||||
'sha1'), 'hex'); |
'sha1'); |
||||||
encode |
hmac |
||||||
------------------------------------------ |
-------------------------------------------- |
||||||
d730594d167e35d5956fd8003d0db3d3f46dc7bb |
\xd730594d167e35d5956fd8003d0db3d3f46dc7bb |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
-- 4 |
-- 4 |
||||||
SELECT encode(hmac( |
SELECT hmac( |
||||||
decode('cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd', 'hex'), |
'\xcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd'::bytea, |
||||||
decode('0102030405060708090a0b0c0d0e0f10111213141516171819', 'hex'), |
'\x0102030405060708090a0b0c0d0e0f10111213141516171819'::bytea, |
||||||
'sha1'), 'hex'); |
'sha1'); |
||||||
encode |
hmac |
||||||
------------------------------------------ |
-------------------------------------------- |
||||||
4c9007f4026250c6bc8414f9bf50c86c2d7235da |
\x4c9007f4026250c6bc8414f9bf50c86c2d7235da |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
-- 5 |
-- 5 |
||||||
SELECT encode(hmac( |
SELECT hmac( |
||||||
'Test With Truncation', |
'Test With Truncation', |
||||||
decode('0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c', 'hex'), |
'\x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c'::bytea, |
||||||
'sha1'), 'hex'); |
'sha1'); |
||||||
encode |
hmac |
||||||
------------------------------------------ |
-------------------------------------------- |
||||||
37268b7e21e84da5720c53c4ba03ad1104039fa7 |
\x37268b7e21e84da5720c53c4ba03ad1104039fa7 |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
-- 6 |
-- 6 |
||||||
SELECT encode(hmac( |
SELECT hmac( |
||||||
'Test Using Larger Than Block-Size Key - Hash Key First', |
'Test Using Larger Than Block-Size Key - Hash Key First', |
||||||
decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'), |
'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea, |
||||||
'sha1'), 'hex'); |
'sha1'); |
||||||
encode |
hmac |
||||||
------------------------------------------ |
-------------------------------------------- |
||||||
aa4ae5e15272d00e95705637ce8a3b55ed402112 |
\xaa4ae5e15272d00e95705637ce8a3b55ed402112 |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
-- 7 |
-- 7 |
||||||
SELECT encode(hmac( |
SELECT hmac( |
||||||
'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data', |
'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data', |
||||||
decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'), |
'\xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'::bytea, |
||||||
'sha1'), 'hex'); |
'sha1'); |
||||||
encode |
hmac |
||||||
------------------------------------------ |
-------------------------------------------- |
||||||
e8e99d0f45237d786d6bbaa7965c7808bbff1a91 |
\xe8e99d0f45237d786d6bbaa7965c7808bbff1a91 |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
|
|||||||
@ -1,45 +1,45 @@ |
|||||||
-- |
-- |
||||||
-- MD5 message digest |
-- MD5 message digest |
||||||
-- |
-- |
||||||
SELECT encode(digest('', 'md5'), 'hex'); |
SELECT digest('', 'md5'); |
||||||
encode |
digest |
||||||
---------------------------------- |
------------------------------------ |
||||||
d41d8cd98f00b204e9800998ecf8427e |
\xd41d8cd98f00b204e9800998ecf8427e |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
SELECT encode(digest('a', 'md5'), 'hex'); |
SELECT digest('a', 'md5'); |
||||||
encode |
digest |
||||||
---------------------------------- |
------------------------------------ |
||||||
0cc175b9c0f1b6a831c399e269772661 |
\x0cc175b9c0f1b6a831c399e269772661 |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
SELECT encode(digest('abc', 'md5'), 'hex'); |
SELECT digest('abc', 'md5'); |
||||||
encode |
digest |
||||||
---------------------------------- |
------------------------------------ |
||||||
900150983cd24fb0d6963f7d28e17f72 |
\x900150983cd24fb0d6963f7d28e17f72 |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
SELECT encode(digest('message digest', 'md5'), 'hex'); |
SELECT digest('message digest', 'md5'); |
||||||
encode |
digest |
||||||
---------------------------------- |
------------------------------------ |
||||||
f96b697d7cb7938d525a2f31aaf161d0 |
\xf96b697d7cb7938d525a2f31aaf161d0 |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
SELECT encode(digest('abcdefghijklmnopqrstuvwxyz', 'md5'), 'hex'); |
SELECT digest('abcdefghijklmnopqrstuvwxyz', 'md5'); |
||||||
encode |
digest |
||||||
---------------------------------- |
------------------------------------ |
||||||
c3fcd3d76192e4007dfb496cca67e13b |
\xc3fcd3d76192e4007dfb496cca67e13b |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
SELECT encode(digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'md5'), 'hex'); |
SELECT digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'md5'); |
||||||
encode |
digest |
||||||
---------------------------------- |
------------------------------------ |
||||||
d174ab98d277d9f5a5611c2c9f419d9f |
\xd174ab98d277d9f5a5611c2c9f419d9f |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
SELECT encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'md5'), 'hex'); |
SELECT digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'md5'); |
||||||
encode |
digest |
||||||
---------------------------------- |
------------------------------------ |
||||||
57edf4a22be3c955ac49da2e2107b67a |
\x57edf4a22be3c955ac49da2e2107b67a |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
|
|||||||
@ -1,45 +1,45 @@ |
|||||||
-- |
-- |
||||||
-- SHA1 message digest |
-- SHA1 message digest |
||||||
-- |
-- |
||||||
SELECT encode(digest('', 'sha1'), 'hex'); |
SELECT digest('', 'sha1'); |
||||||
encode |
digest |
||||||
------------------------------------------ |
-------------------------------------------- |
||||||
da39a3ee5e6b4b0d3255bfef95601890afd80709 |
\xda39a3ee5e6b4b0d3255bfef95601890afd80709 |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
SELECT encode(digest('a', 'sha1'), 'hex'); |
SELECT digest('a', 'sha1'); |
||||||
encode |
digest |
||||||
------------------------------------------ |
-------------------------------------------- |
||||||
86f7e437faa5a7fce15d1ddcb9eaeaea377667b8 |
\x86f7e437faa5a7fce15d1ddcb9eaeaea377667b8 |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
SELECT encode(digest('abc', 'sha1'), 'hex'); |
SELECT digest('abc', 'sha1'); |
||||||
encode |
digest |
||||||
------------------------------------------ |
-------------------------------------------- |
||||||
a9993e364706816aba3e25717850c26c9cd0d89d |
\xa9993e364706816aba3e25717850c26c9cd0d89d |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
SELECT encode(digest('message digest', 'sha1'), 'hex'); |
SELECT digest('message digest', 'sha1'); |
||||||
encode |
digest |
||||||
------------------------------------------ |
-------------------------------------------- |
||||||
c12252ceda8be8994d5fa0290a47231c1d16aae3 |
\xc12252ceda8be8994d5fa0290a47231c1d16aae3 |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
SELECT encode(digest('abcdefghijklmnopqrstuvwxyz', 'sha1'), 'hex'); |
SELECT digest('abcdefghijklmnopqrstuvwxyz', 'sha1'); |
||||||
encode |
digest |
||||||
------------------------------------------ |
-------------------------------------------- |
||||||
32d10c7b8cf96570ca04ce37f2a19d84240d3a89 |
\x32d10c7b8cf96570ca04ce37f2a19d84240d3a89 |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
SELECT encode(digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'sha1'), 'hex'); |
SELECT digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'sha1'); |
||||||
encode |
digest |
||||||
------------------------------------------ |
-------------------------------------------- |
||||||
761c457bf73b14d27e9e9265c46f4b4dda11f940 |
\x761c457bf73b14d27e9e9265c46f4b4dda11f940 |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
SELECT encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha1'), 'hex'); |
SELECT digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha1'); |
||||||
encode |
digest |
||||||
------------------------------------------ |
-------------------------------------------- |
||||||
50abf5706a150990a08b2c5ea40fa0e585554732 |
\x50abf5706a150990a08b2c5ea40fa0e585554732 |
||||||
(1 row) |
(1 row) |
||||||
|
|
||||||
|
|||||||
@ -1,31 +1,25 @@ |
|||||||
-- |
-- |
||||||
-- 3DES cipher |
-- 3DES cipher |
||||||
-- |
-- |
||||||
-- ensure consistent test output regardless of the default bytea format |
|
||||||
SET bytea_output TO escape; |
|
||||||
|
|
||||||
-- test vector from somewhere |
-- test vector from somewhere |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x8000000000000000', |
||||||
decode('80 00 00 00 00 00 00 00', 'hex'), |
'\x010101010101010101010101010101010101010101010101', |
||||||
decode('01 01 01 01 01 01 01 01 |
'3des-ecb/pad:none'); |
||||||
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 encode( encrypt('', 'foo', '3des'), 'hex'); |
select encrypt('', 'foo', '3des'); |
||||||
-- 10 bytes key |
-- 10 bytes key |
||||||
select encode( encrypt('foo', '0123456789', '3des'), 'hex'); |
select encrypt('foo', '0123456789', '3des'); |
||||||
-- 22 bytes key |
-- 22 bytes key |
||||||
select encode( encrypt('foo', '0123456789012345678901', '3des'), 'hex'); |
select encrypt('foo', '0123456789012345678901', '3des'); |
||||||
|
|
||||||
-- decrypt |
-- decrypt |
||||||
select decrypt(encrypt('foo', '0123456', '3des'), '0123456', '3des'); |
select encode(decrypt(encrypt('foo', '0123456', '3des'), '0123456', '3des'), 'escape'); |
||||||
|
|
||||||
-- iv |
-- iv |
||||||
select encode(encrypt_iv('foo', '0123456', 'abcd', '3des'), 'hex'); |
select encrypt_iv('foo', '0123456', 'abcd', '3des'); |
||||||
select decrypt_iv(decode('50735067b073bb93', 'hex'), '0123456', 'abcd', '3des'); |
select encode(decrypt_iv('\x50735067b073bb93', '0123456', 'abcd', '3des'), 'escape'); |
||||||
|
|
||||||
-- long message |
-- long message |
||||||
select encode(encrypt('Lets try a longer message.', '0123456789012345678901', '3des'), 'hex'); |
select encrypt('Lets try a longer message.', '0123456789012345678901', '3des'); |
||||||
select decrypt(encrypt('Lets try a longer message.', '0123456789012345678901', '3des'), '0123456789012345678901', '3des'); |
select encode(decrypt(encrypt('Lets try a longer message.', '0123456789012345678901', '3des'), '0123456789012345678901', '3des'), 'escape'); |
||||||
|
|||||||
@ -1,92 +1,53 @@ |
|||||||
-- |
-- |
||||||
-- Blowfish cipher |
-- Blowfish cipher |
||||||
-- |
-- |
||||||
-- ensure consistent test output regardless of the default bytea format |
|
||||||
SET bytea_output TO escape; |
|
||||||
|
|
||||||
-- some standard Blowfish testvalues |
-- some standard Blowfish testvalues |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x0000000000000000', '\x0000000000000000', 'bf-ecb/pad:none'); |
||||||
decode('0000000000000000', 'hex'), |
SELECT encrypt('\xffffffffffffffff', '\xffffffffffffffff', 'bf-ecb/pad:none'); |
||||||
decode('0000000000000000', 'hex'), |
SELECT encrypt('\x1000000000000001', '\x3000000000000000', 'bf-ecb/pad:none'); |
||||||
'bf-ecb/pad:none'), 'hex'); |
SELECT encrypt('\x1111111111111111', '\x1111111111111111', 'bf-ecb/pad:none'); |
||||||
|
SELECT encrypt('\x0123456789abcdef', '\xfedcba9876543210', 'bf-ecb/pad:none'); |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x01a1d6d039776742', '\xfedcba9876543210', 'bf-ecb/pad:none'); |
||||||
decode('ffffffffffffffff', 'hex'), |
SELECT encrypt('\xffffffffffffffff', '\x0000000000000000', 'bf-ecb/pad:none'); |
||||||
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'); |
|
||||||
|
|
||||||
-- setkey |
-- setkey |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\xfedcba9876543210', '\xf0e1d2c3b4a5968778695a4b3c2d1e0f', 'bf-ecb/pad:none'); |
||||||
decode('fedcba9876543210', 'hex'), |
|
||||||
decode('f0e1d2c3b4a5968778695a4b3c2d1e0f', 'hex'), |
|
||||||
'bf-ecb/pad:none'), 'hex'); |
|
||||||
|
|
||||||
-- with padding |
-- with padding |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x01234567890123456789', '\x33443344334433443344334433443344', 'bf-ecb'); |
||||||
decode('01234567890123456789', 'hex'), |
|
||||||
decode('33443344334433443344334433443344', 'hex'), |
|
||||||
'bf-ecb'), 'hex'); |
|
||||||
|
|
||||||
-- cbc |
-- cbc |
||||||
|
|
||||||
-- 28 bytes key |
-- 28 bytes key |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5', |
||||||
decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5', 'hex'), |
'\x37363534333231204e6f77206973207468652074696d6520666f7220', |
||||||
decode('37363534333231204e6f77206973207468652074696d6520666f7220', 'hex'), |
'bf-cbc'); |
||||||
'bf-cbc'), 'hex'); |
|
||||||
|
|
||||||
-- 29 bytes key |
-- 29 bytes key |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc', |
||||||
decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc', 'hex'), |
'\x37363534333231204e6f77206973207468652074696d6520666f722000', |
||||||
decode('37363534333231204e6f77206973207468652074696d6520666f722000', 'hex'), |
'bf-cbc'); |
||||||
'bf-cbc'), 'hex'); |
|
||||||
|
|
||||||
-- blowfish-448 |
-- blowfish-448 |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\xfedcba9876543210', |
||||||
decode('fedcba9876543210', 'hex'), |
'\xf0e1d2c3b4a5968778695a4b3c2d1e0f001122334455667704689104c2fd3b2f584023641aba61761f1f1f1f0e0e0e0effffffffffffffff', |
||||||
decode('f0e1d2c3b4a5968778695a4b3c2d1e0f001122334455667704689104c2fd3b2f584023641aba61761f1f1f1f0e0e0e0effffffffffffffff', 'hex'), |
'bf-ecb/pad:none'); |
||||||
'bf-ecb/pad:none'), 'hex'); |
|
||||||
-- result: c04504012e4e1f53 |
|
||||||
|
|
||||||
-- empty data |
-- empty data |
||||||
select encode(encrypt('', 'foo', 'bf'), 'hex'); |
select encrypt('', 'foo', 'bf'); |
||||||
-- 10 bytes key |
-- 10 bytes key |
||||||
select encode(encrypt('foo', '0123456789', 'bf'), 'hex'); |
select encrypt('foo', '0123456789', 'bf'); |
||||||
-- 22 bytes key |
-- 22 bytes key |
||||||
select encode(encrypt('foo', '0123456789012345678901', 'bf'), 'hex'); |
select encrypt('foo', '0123456789012345678901', 'bf'); |
||||||
|
|
||||||
-- decrypt |
-- decrypt |
||||||
select decrypt(encrypt('foo', '0123456', 'bf'), '0123456', 'bf'); |
select encode(decrypt(encrypt('foo', '0123456', 'bf'), '0123456', 'bf'), 'escape'); |
||||||
|
|
||||||
-- iv |
-- iv |
||||||
select encode(encrypt_iv('foo', '0123456', 'abcd', 'bf'), 'hex'); |
select encrypt_iv('foo', '0123456', 'abcd', 'bf'); |
||||||
select decrypt_iv(decode('95c7e89322525d59', 'hex'), '0123456', 'abcd', 'bf'); |
select encode(decrypt_iv('\x95c7e89322525d59', '0123456', 'abcd', 'bf'), 'escape'); |
||||||
|
|
||||||
-- long message |
-- long message |
||||||
select encode(encrypt('Lets try a longer message.', '0123456789', 'bf'), 'hex'); |
select encrypt('Lets try a longer message.', '0123456789', 'bf'); |
||||||
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'); |
||||||
|
|||||||
@ -1,47 +1,32 @@ |
|||||||
-- |
-- |
||||||
-- Cast5 cipher |
-- Cast5 cipher |
||||||
-- |
-- |
||||||
-- ensure consistent test output regardless of the default bytea format |
|
||||||
SET bytea_output TO escape; |
|
||||||
|
|
||||||
-- test vectors from RFC2144 |
-- test vectors from RFC2144 |
||||||
|
|
||||||
-- 128 bit key |
-- 128 bit key |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x0123456789ABCDEF', '\x0123456712345678234567893456789A', 'cast5-ecb/pad:none'); |
||||||
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 |
|
||||||
|
|
||||||
-- 80 bit key |
-- 80 bit key |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x0123456789ABCDEF', '\x01234567123456782345', 'cast5-ecb/pad:none'); |
||||||
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 |
|
||||||
|
|
||||||
-- 40 bit key |
-- 40 bit key |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x0123456789ABCDEF', '\x0123456712', 'cast5-ecb/pad:none'); |
||||||
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 |
|
||||||
|
|
||||||
-- cbc |
-- cbc |
||||||
|
|
||||||
-- empty data |
-- empty data |
||||||
select encode( encrypt('', 'foo', 'cast5'), 'hex'); |
select encrypt('', 'foo', 'cast5'); |
||||||
-- 10 bytes key |
-- 10 bytes key |
||||||
select encode( encrypt('foo', '0123456789', 'cast5'), 'hex'); |
select encrypt('foo', '0123456789', 'cast5'); |
||||||
|
|
||||||
-- decrypt |
-- decrypt |
||||||
select decrypt(encrypt('foo', '0123456', 'cast5'), '0123456', 'cast5'); |
select encode(decrypt(encrypt('foo', '0123456', 'cast5'), '0123456', 'cast5'), 'escape'); |
||||||
|
|
||||||
-- iv |
-- iv |
||||||
select encode(encrypt_iv('foo', '0123456', 'abcd', 'cast5'), 'hex'); |
select encrypt_iv('foo', '0123456', 'abcd', 'cast5'); |
||||||
select decrypt_iv(decode('384a970695ce016a', 'hex'), |
select encode(decrypt_iv('\x384a970695ce016a', '0123456', 'abcd', 'cast5'), 'escape'); |
||||||
'0123456', 'abcd', 'cast5'); |
|
||||||
|
|
||||||
-- long message |
-- long message |
||||||
select encode(encrypt('Lets try a longer message.', '0123456789', 'cast5'), 'hex'); |
select encrypt('Lets try a longer message.', '0123456789', 'cast5'); |
||||||
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'); |
||||||
|
|||||||
@ -1,29 +1,24 @@ |
|||||||
-- |
-- |
||||||
-- DES cipher |
-- DES cipher |
||||||
-- |
-- |
||||||
-- ensure consistent test output regardless of the default bytea format |
|
||||||
SET bytea_output TO escape; |
|
||||||
|
|
||||||
-- no official test vectors atm |
-- no official test vectors atm |
||||||
|
|
||||||
-- from blowfish.sql |
-- from blowfish.sql |
||||||
SELECT encode(encrypt( |
SELECT encrypt('\x0123456789abcdef', '\xfedcba9876543210', 'des-ecb/pad:none'); |
||||||
decode('0123456789abcdef', 'hex'), |
|
||||||
decode('fedcba9876543210', 'hex'), |
|
||||||
'des-ecb/pad:none'), 'hex'); |
|
||||||
|
|
||||||
-- empty data |
-- empty data |
||||||
select encode( encrypt('', 'foo', 'des'), 'hex'); |
select encrypt('', 'foo', 'des'); |
||||||
-- 8 bytes key |
-- 8 bytes key |
||||||
select encode( encrypt('foo', '01234589', 'des'), 'hex'); |
select encrypt('foo', '01234589', 'des'); |
||||||
|
|
||||||
-- decrypt |
-- decrypt |
||||||
select decrypt(encrypt('foo', '0123456', 'des'), '0123456', 'des'); |
select encode(decrypt(encrypt('foo', '0123456', 'des'), '0123456', 'des'), 'escape'); |
||||||
|
|
||||||
-- iv |
-- iv |
||||||
select encode(encrypt_iv('foo', '0123456', 'abcd', 'des'), 'hex'); |
select encrypt_iv('foo', '0123456', 'abcd', 'des'); |
||||||
select decrypt_iv(decode('50735067b073bb93', 'hex'), '0123456', 'abcd', 'des'); |
select encode(decrypt_iv('\x50735067b073bb93', '0123456', 'abcd', 'des'), 'escape'); |
||||||
|
|
||||||
-- long message |
-- long message |
||||||
select encode(encrypt('Lets try a longer message.', '01234567', 'des'), 'hex'); |
select encrypt('Lets try a longer message.', '01234567', 'des'); |
||||||
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'); |
||||||
|
|||||||
@ -1,63 +1,60 @@ |
|||||||
-- |
-- |
||||||
-- AES cipher (aka Rijndael-128, -192, or -256) |
-- 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 |
-- some standard Rijndael testvalues |
||||||
SELECT encode(encrypt( |
SELECT encrypt( |
||||||
decode('00112233445566778899aabbccddeeff', 'hex'), |
'\x00112233445566778899aabbccddeeff', |
||||||
decode('000102030405060708090a0b0c0d0e0f', 'hex'), |
'\x000102030405060708090a0b0c0d0e0f', |
||||||
'aes-ecb/pad:none'), 'hex'); |
'aes-ecb/pad:none'); |
||||||
|
|
||||||
SELECT encode(encrypt( |
SELECT encrypt( |
||||||
decode('00112233445566778899aabbccddeeff', 'hex'), |
'\x00112233445566778899aabbccddeeff', |
||||||
decode('000102030405060708090a0b0c0d0e0f1011121314151617', 'hex'), |
'\x000102030405060708090a0b0c0d0e0f1011121314151617', |
||||||
'aes-ecb/pad:none'), 'hex'); |
'aes-ecb/pad:none'); |
||||||
|
|
||||||
SELECT encode(encrypt( |
SELECT encrypt( |
||||||
decode('00112233445566778899aabbccddeeff', 'hex'), |
'\x00112233445566778899aabbccddeeff', |
||||||
decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', 'hex'), |
'\x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', |
||||||
'aes-ecb/pad:none'), 'hex'); |
'aes-ecb/pad:none'); |
||||||
|
|
||||||
-- cbc |
-- cbc |
||||||
SELECT encode(encrypt( |
SELECT encrypt( |
||||||
decode('00112233445566778899aabbccddeeff', 'hex'), |
'\x00112233445566778899aabbccddeeff', |
||||||
decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', 'hex'), |
'\x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', |
||||||
'aes-cbc/pad:none'), 'hex'); |
'aes-cbc/pad:none'); |
||||||
|
|
||||||
-- key padding |
-- key padding |
||||||
|
|
||||||
SELECT encode(encrypt( |
SELECT encrypt( |
||||||
decode('0011223344', 'hex'), |
'\x0011223344', |
||||||
decode('000102030405', 'hex'), |
'\x000102030405', |
||||||
'aes-cbc'), 'hex'); |
'aes-cbc'); |
||||||
|
|
||||||
SELECT encode(encrypt( |
SELECT encrypt( |
||||||
decode('0011223344', 'hex'), |
'\x0011223344', |
||||||
decode('000102030405060708090a0b0c0d0e0f10111213', 'hex'), |
'\x000102030405060708090a0b0c0d0e0f10111213', |
||||||
'aes-cbc'), 'hex'); |
'aes-cbc'); |
||||||
|
|
||||||
SELECT encode(encrypt( |
SELECT encrypt( |
||||||
decode('0011223344', 'hex'), |
'\x0011223344', |
||||||
decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b', 'hex'), |
'\x000102030405060708090a0b0c0d0e0f101112131415161718191a1b', |
||||||
'aes-cbc'), 'hex'); |
'aes-cbc'); |
||||||
|
|
||||||
-- empty data |
-- empty data |
||||||
select encode(encrypt('', 'foo', 'aes'), 'hex'); |
select encrypt('', 'foo', 'aes'); |
||||||
-- 10 bytes key |
-- 10 bytes key |
||||||
select encode(encrypt('foo', '0123456789', 'aes'), 'hex'); |
select encrypt('foo', '0123456789', 'aes'); |
||||||
-- 22 bytes key |
-- 22 bytes key |
||||||
select encode(encrypt('foo', '0123456789012345678901', 'aes'), 'hex'); |
select encrypt('foo', '0123456789012345678901', 'aes'); |
||||||
|
|
||||||
-- decrypt |
-- decrypt |
||||||
select decrypt(encrypt('foo', '0123456', 'aes'), '0123456', 'aes'); |
select encode(decrypt(encrypt('foo', '0123456', 'aes'), '0123456', 'aes'), 'escape'); |
||||||
|
|
||||||
-- iv |
-- iv |
||||||
select encode(encrypt_iv('foo', '0123456', 'abcd', 'aes'), 'hex'); |
select encrypt_iv('foo', '0123456', 'abcd', 'aes'); |
||||||
select decrypt_iv(decode('2c24cb7da91d6d5699801268b0f5adad', 'hex'), |
select encode(decrypt_iv('\x2c24cb7da91d6d5699801268b0f5adad', '0123456', 'abcd', 'aes'), 'escape'); |
||||||
'0123456', 'abcd', 'aes'); |
|
||||||
|
|
||||||
-- long message |
-- long message |
||||||
select encode(encrypt('Lets try a longer message.', '0123456789', 'aes'), 'hex'); |
select encrypt('Lets try a longer message.', '0123456789', 'aes'); |
||||||
select decrypt(encrypt('Lets try a longer message.', '0123456789', 'aes'), '0123456789', 'aes'); |
select encode(decrypt(encrypt('Lets try a longer message.', '0123456789', 'aes'), '0123456789', 'aes'), 'escape'); |
||||||
|
|||||||
Loading…
Reference in new issue