mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-30 19:00:29 +08:00
6a8eb1a7b6
* test error handling * add tests for des, 3des, cast5 * add some tests to blowfish, rijndael * Makefile: ability to specify different tests for different crypto libraries, so we can skip des, 3des and cast5 for builtin. Marko Kreen
112 lines
2.9 KiB
Plaintext
112 lines
2.9 KiB
Plaintext
--
|
|
-- AES / Rijndael-128 cipher
|
|
--
|
|
-- some standard Rijndael testvalues
|
|
SELECT encode(encrypt(
|
|
decode('00112233445566778899aabbccddeeff', 'hex'),
|
|
decode('000102030405060708090a0b0c0d0e0f', 'hex'),
|
|
'aes-ecb/pad:none'), 'hex');
|
|
encode
|
|
----------------------------------
|
|
69c4e0d86a7b0430d8cdb78070b4c55a
|
|
(1 row)
|
|
|
|
SELECT encode(encrypt(
|
|
decode('00112233445566778899aabbccddeeff', 'hex'),
|
|
decode('000102030405060708090a0b0c0d0e0f1011121314151617', 'hex'),
|
|
'aes-ecb/pad:none'), 'hex');
|
|
encode
|
|
----------------------------------
|
|
dda97ca4864cdfe06eaf70a0ec0d7191
|
|
(1 row)
|
|
|
|
SELECT encode(encrypt(
|
|
decode('00112233445566778899aabbccddeeff', 'hex'),
|
|
decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', 'hex'),
|
|
'aes-ecb/pad:none'), 'hex');
|
|
encode
|
|
----------------------------------
|
|
8ea2b7ca516745bfeafc49904b496089
|
|
(1 row)
|
|
|
|
-- cbc
|
|
SELECT encode(encrypt(
|
|
decode('00112233445566778899aabbccddeeff', 'hex'),
|
|
decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', 'hex'),
|
|
'aes-cbc/pad:none'), 'hex');
|
|
encode
|
|
----------------------------------
|
|
8ea2b7ca516745bfeafc49904b496089
|
|
(1 row)
|
|
|
|
-- key padding
|
|
SELECT encode(encrypt(
|
|
decode('0011223344', 'hex'),
|
|
decode('000102030405', 'hex'),
|
|
'aes-cbc'), 'hex');
|
|
encode
|
|
----------------------------------
|
|
189a28932213f017b246678dbc28655f
|
|
(1 row)
|
|
|
|
SELECT encode(encrypt(
|
|
decode('0011223344', 'hex'),
|
|
decode('000102030405060708090a0b0c0d0e0f10111213', 'hex'),
|
|
'aes-cbc'), 'hex');
|
|
encode
|
|
----------------------------------
|
|
3b02279162d15580e069d3a71407a556
|
|
(1 row)
|
|
|
|
SELECT encode(encrypt(
|
|
decode('0011223344', 'hex'),
|
|
decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b', 'hex'),
|
|
'aes-cbc'), 'hex');
|
|
encode
|
|
----------------------------------
|
|
4facb6a041d53e0a5a73289170901fe7
|
|
(1 row)
|
|
|
|
-- empty data
|
|
select encode( encrypt('', 'foo', 'aes'), 'hex');
|
|
encode
|
|
----------------------------------
|
|
b48cc3338a2eb293b6007ef72c360d48
|
|
(1 row)
|
|
|
|
-- 10 bytes key
|
|
select encode( encrypt('foo', '0123456789', 'aes'), 'hex');
|
|
encode
|
|
----------------------------------
|
|
f397f03d2819b7172b68d0706fda4693
|
|
(1 row)
|
|
|
|
-- 22 bytes key
|
|
select encode( encrypt('foo', '0123456789012345678901', 'aes'), 'hex');
|
|
encode
|
|
----------------------------------
|
|
5c9db77af02b4678117bcd8a71ae7f53
|
|
(1 row)
|
|
|
|
-- decrypt
|
|
select decrypt(encrypt('foo', '0123456', 'aes'), '0123456', 'aes');
|
|
decrypt
|
|
---------
|
|
foo
|
|
(1 row)
|
|
|
|
-- iv
|
|
select encode(encrypt_iv('foo', '0123456', 'abcd', 'aes'), 'hex');
|
|
encode
|
|
----------------------------------
|
|
2c24cb7da91d6d5699801268b0f5adad
|
|
(1 row)
|
|
|
|
select decrypt_iv(decode('2c24cb7da91d6d5699801268b0f5adad', 'hex'),
|
|
'0123456', 'abcd', 'aes');
|
|
decrypt_iv
|
|
------------
|
|
foo
|
|
(1 row)
|
|
|