OSDN Git Service

Add missing pgcrypto files.
authorBruce Momjian <bruce@momjian.us>
Mon, 1 Oct 2001 16:12:23 +0000 (16:12 +0000)
committerBruce Momjian <bruce@momjian.us>
Mon, 1 Oct 2001 16:12:23 +0000 (16:12 +0000)
22 files changed:
contrib/pgcrypto/expected/blowfish.out [new file with mode: 0644]
contrib/pgcrypto/expected/crypt-blowfish.out [new file with mode: 0644]
contrib/pgcrypto/expected/crypt-des.out [new file with mode: 0644]
contrib/pgcrypto/expected/crypt-md5.out [new file with mode: 0644]
contrib/pgcrypto/expected/crypt-xdes.out [new file with mode: 0644]
contrib/pgcrypto/expected/hmac-md5.out [new file with mode: 0644]
contrib/pgcrypto/expected/hmac-sha1.out [new file with mode: 0644]
contrib/pgcrypto/expected/init.out [new file with mode: 0644]
contrib/pgcrypto/expected/md5.out [new file with mode: 0644]
contrib/pgcrypto/expected/rijndael.out [new file with mode: 0644]
contrib/pgcrypto/expected/sha1.out [new file with mode: 0644]
contrib/pgcrypto/sql/blowfish.sql [new file with mode: 0644]
contrib/pgcrypto/sql/crypt-blowfish.sql [new file with mode: 0644]
contrib/pgcrypto/sql/crypt-des.sql [new file with mode: 0644]
contrib/pgcrypto/sql/crypt-md5.sql [new file with mode: 0644]
contrib/pgcrypto/sql/crypt-xdes.sql [new file with mode: 0644]
contrib/pgcrypto/sql/hmac-md5.sql [new file with mode: 0644]
contrib/pgcrypto/sql/hmac-sha1.sql [new file with mode: 0644]
contrib/pgcrypto/sql/init.sql [new file with mode: 0644]
contrib/pgcrypto/sql/md5.sql [new file with mode: 0644]
contrib/pgcrypto/sql/rijndael.sql [new file with mode: 0644]
contrib/pgcrypto/sql/sha1.sql [new file with mode: 0644]

diff --git a/contrib/pgcrypto/expected/blowfish.out b/contrib/pgcrypto/expected/blowfish.out
new file mode 100644 (file)
index 0000000..e7fd632
--- /dev/null
@@ -0,0 +1,108 @@
+--
+-- Blowfish cipher
+--
+-- 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
+(1 row)
+
+-- setkey
+select encode(encrypt(
+decode('fedcba9876543210', 'hex'),
+decode('f0e1d2c3b4a5968778695a4b3c2d1e0f', 'hex'),
+'bf-ecb/pad:none'), 'hex');
+      encode      
+------------------
+ 93142887ee3be15c
+(1 row)
+
+-- with padding
+select encode(encrypt(
+decode('01234567890123456789', 'hex'),
+decode('33443344334433443344334433443344', 'hex'),
+'bf-ecb'), 'hex');
+              encode              
+----------------------------------
+ 0d04a43a20456dee5ede6ed9e4dcaaa6
+(1 row)
+
+-- cbc
+-- 28 bytes key
+select encode(encrypt(
+decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5', 'hex'),
+decode('37363534333231204e6f77206973207468652074696d6520666f7220', 'hex'),
+'bf-cbc'), 'hex');
+                              encode                              
+------------------------------------------------------------------
+ 4f2beb748c4f689ec755edb9dc252a41b93a3786850b4c75d6a702b6a8e48825
+(1 row)
+
+-- 29 bytes key
+select encode(encrypt(
+decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc', 'hex'),
+decode('37363534333231204e6f77206973207468652074696d6520666f722000', 'hex'),
+'bf-cbc'), 'hex');
+                                      encode                                      
+----------------------------------------------------------------------------------
+ 3ea6357a0ee7fad6d0c4b63464f2aafa40c2e91b4b7e1bba8114932fd92b5c8f111e7e50e7b2e541
+(1 row)
+
diff --git a/contrib/pgcrypto/expected/crypt-blowfish.out b/contrib/pgcrypto/expected/crypt-blowfish.out
new file mode 100644 (file)
index 0000000..7910a4e
--- /dev/null
@@ -0,0 +1,26 @@
+--
+-- crypt() and gen_salt(): bcrypt
+--
+select crypt('', '$2a$06$RQiOJ.3ELirrXwxIZY8q0O');
+                            crypt                             
+--------------------------------------------------------------
+ $2a$06$RQiOJ.3ELirrXwxIZY8q0OlGbBEpDmx7IRZlNYvGJ1SHXwNi2cEKK
+(1 row)
+
+select crypt('foox', '$2a$06$RQiOJ.3ELirrXwxIZY8q0O');
+                            crypt                             
+--------------------------------------------------------------
+ $2a$06$RQiOJ.3ELirrXwxIZY8q0OR3CVJrAfda1z26CCHPnB6mmVZD8p0/C
+(1 row)
+
+create table ctest (data text, res text, salt text);
+insert into ctest values ('password', '', '');
+update ctest set salt = gen_salt('bf', 8);
+update ctest set res = crypt(data, salt);
+select res = crypt(data, res) as "worked" from ctest;
+ worked 
+--------
+ t
+(1 row)
+
+drop table ctest;
diff --git a/contrib/pgcrypto/expected/crypt-des.out b/contrib/pgcrypto/expected/crypt-des.out
new file mode 100644 (file)
index 0000000..76a756e
--- /dev/null
@@ -0,0 +1,26 @@
+--
+-- crypt() and gen_salt(): crypt-des
+--
+select crypt('', 'NB');
+     crypt     
+---------------
+ NBPx/38Y48kHg
+(1 row)
+
+select crypt('foox', 'NB');
+     crypt     
+---------------
+ NB53EGGqrrb5E
+(1 row)
+
+create table ctest (data text, res text, salt text);
+insert into ctest values ('password', '', '');
+update ctest set salt = gen_salt('des');
+update ctest set res = crypt(data, salt);
+select res = crypt(data, res) as "worked" from ctest;
+ worked 
+--------
+ t
+(1 row)
+
+drop table ctest;
diff --git a/contrib/pgcrypto/expected/crypt-md5.out b/contrib/pgcrypto/expected/crypt-md5.out
new file mode 100644 (file)
index 0000000..4bd2f33
--- /dev/null
@@ -0,0 +1,26 @@
+--
+-- crypt() and gen_salt(): md5
+--
+select crypt('', '$1$Szzz0yzz');
+               crypt                
+------------------------------------
+ $1$Szzz0yzz$To38XrR3BsbXQW2ZpfKjF1
+(1 row)
+
+select crypt('foox', '$1$Szzz0yzz');
+               crypt                
+------------------------------------
+ $1$Szzz0yzz$IYL49cd3t9bllsA7Jmz1M1
+(1 row)
+
+create table ctest (data text, res text, salt text);
+insert into ctest values ('password', '', '');
+update ctest set salt = gen_salt('md5');
+update ctest set res = crypt(data, salt);
+select res = crypt(data, res) as "worked" from ctest;
+ worked 
+--------
+ t
+(1 row)
+
+drop table ctest;
diff --git a/contrib/pgcrypto/expected/crypt-xdes.out b/contrib/pgcrypto/expected/crypt-xdes.out
new file mode 100644 (file)
index 0000000..d247b55
--- /dev/null
@@ -0,0 +1,26 @@
+--
+-- crypt() and gen_salt(): extended des
+--
+select crypt('', '_J9..j2zz');
+        crypt         
+----------------------
+ _J9..j2zzR/nIRDK3pPc
+(1 row)
+
+select crypt('foox', '_J9..j2zz');
+        crypt         
+----------------------
+ _J9..j2zzAYKMvO2BYRY
+(1 row)
+
+create table ctest (data text, res text, salt text);
+insert into ctest values ('password', '', '');
+update ctest set salt = gen_salt('xdes', 1001);
+update ctest set res = crypt(data, salt);
+select res = crypt(data, res) as "worked" from ctest;
+ worked 
+--------
+ t
+(1 row)
+
+drop table ctest;
diff --git a/contrib/pgcrypto/expected/hmac-md5.out b/contrib/pgcrypto/expected/hmac-md5.out
new file mode 100644 (file)
index 0000000..5cd55ce
--- /dev/null
@@ -0,0 +1,72 @@
+--
+-- HMAC-MD5
+--
+select encode(hmac(
+'Hi There',
+decode('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b', 'hex'),
+'md5'), 'hex');
+              encode              
+----------------------------------
+ 9294727a3638bb1c13f48ef8158bfc9d
+(1 row)
+
+-- 2
+select encode(hmac(
+'Jefe',
+'what do ya want for nothing?',
+'md5'), 'hex');
+              encode              
+----------------------------------
+ 813aead7c4a34bff01a16d61368e7c13
+(1 row)
+
+-- 3
+select encode(hmac(
+decode('dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd', 'hex'),
+decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
+'md5'), 'hex');
+              encode              
+----------------------------------
+ 56be34521d144c88dbb8c733f0e8b3f6
+(1 row)
+
+-- 4
+select encode(hmac(
+decode('cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd', 'hex'),
+decode('0102030405060708090a0b0c0d0e0f10111213141516171819', 'hex'),
+'md5'), 'hex');
+              encode              
+----------------------------------
+ 697eaf0aca3a3aea3a75164746ffaa79
+(1 row)
+
+-- 5
+select encode(hmac(
+'Test With Truncation',
+decode('0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c', 'hex'),
+'md5'), 'hex');
+              encode              
+----------------------------------
+ 56461ef2342edc00f9bab995690efd4c
+(1 row)
+
+-- 6
+select encode(hmac(
+'Test Using Larger Than Block-Size Key - Hash Key First',
+decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
+'md5'), 'hex');
+              encode              
+----------------------------------
+ 6b1ab7fe4bd7bf8f0b62e6ce61b9d0cd
+(1 row)
+
+-- 7
+select encode(hmac(
+'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data',
+decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
+'md5'), 'hex');
+              encode              
+----------------------------------
+ 6f630fad67cda0ee1fb1f562db3aa53e
+(1 row)
+
diff --git a/contrib/pgcrypto/expected/hmac-sha1.out b/contrib/pgcrypto/expected/hmac-sha1.out
new file mode 100644 (file)
index 0000000..e4739fe
--- /dev/null
@@ -0,0 +1,72 @@
+--
+-- HMAC-MD5
+--
+select encode(hmac(
+'Hi There',
+decode('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b', 'hex'),
+'sha1'), 'hex');
+                  encode                  
+------------------------------------------
+ 675b0b3a1b4ddf4e124872da6c2f632bfed957e9
+(1 row)
+
+-- 2
+select encode(hmac(
+'Jefe',
+'what do ya want for nothing?',
+'sha1'), 'hex');
+                  encode                  
+------------------------------------------
+ 156d4c35468a0339f3fa57a067bf47f814eb7a57
+(1 row)
+
+-- 3
+select encode(hmac(
+decode('dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd', 'hex'),
+decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
+'sha1'), 'hex');
+                  encode                  
+------------------------------------------
+ d730594d167e35d5956fd8003d0db3d3f46dc7bb
+(1 row)
+
+-- 4
+select encode(hmac(
+decode('cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd', 'hex'),
+decode('0102030405060708090a0b0c0d0e0f10111213141516171819', 'hex'),
+'sha1'), 'hex');
+                  encode                  
+------------------------------------------
+ 4c9007f4026250c6bc8414f9bf50c86c2d7235da
+(1 row)
+
+-- 5
+select encode(hmac(
+'Test With Truncation',
+decode('0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c', 'hex'),
+'sha1'), 'hex');
+                  encode                  
+------------------------------------------
+ 37268b7e21e84da5720c53c4ba03ad1104039fa7
+(1 row)
+
+-- 6
+select encode(hmac(
+'Test Using Larger Than Block-Size Key - Hash Key First',
+decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
+'sha1'), 'hex');
+                  encode                  
+------------------------------------------
+ aa4ae5e15272d00e95705637ce8a3b55ed402112
+(1 row)
+
+-- 7
+select encode(hmac(
+'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data',
+decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
+'sha1'), 'hex');
+                  encode                  
+------------------------------------------
+ e8e99d0f45237d786d6bbaa7965c7808bbff1a91
+(1 row)
+
diff --git a/contrib/pgcrypto/expected/init.out b/contrib/pgcrypto/expected/init.out
new file mode 100644 (file)
index 0000000..a7c95eb
--- /dev/null
@@ -0,0 +1,17 @@
+--
+-- init pgcrypto
+--
+\set ECHO none
+-- check for encoding fn's
+select encode('foo', 'hex');
+ encode 
+--------
+ 666f6f
+(1 row)
+
+select decode('666f6f', 'hex');
+ decode 
+--------
+ foo
+(1 row)
+
diff --git a/contrib/pgcrypto/expected/md5.out b/contrib/pgcrypto/expected/md5.out
new file mode 100644 (file)
index 0000000..ec83680
--- /dev/null
@@ -0,0 +1,45 @@
+--
+-- MD5 message digest
+--
+select encode(digest('', 'md5'), 'hex');
+              encode              
+----------------------------------
+ d41d8cd98f00b204e9800998ecf8427e
+(1 row)
+
+select encode(digest('a', 'md5'), 'hex');
+              encode              
+----------------------------------
+ 0cc175b9c0f1b6a831c399e269772661
+(1 row)
+
+select encode(digest('abc', 'md5'), 'hex');
+              encode              
+----------------------------------
+ 900150983cd24fb0d6963f7d28e17f72
+(1 row)
+
+select encode(digest('message digest', 'md5'), 'hex');
+              encode              
+----------------------------------
+ f96b697d7cb7938d525a2f31aaf161d0
+(1 row)
+
+select encode(digest('abcdefghijklmnopqrstuvwxyz', 'md5'), 'hex');
+              encode              
+----------------------------------
+ c3fcd3d76192e4007dfb496cca67e13b
+(1 row)
+
+select encode(digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'md5'), 'hex');
+              encode              
+----------------------------------
+ d174ab98d277d9f5a5611c2c9f419d9f
+(1 row)
+
+select encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'md5'), 'hex');
+              encode              
+----------------------------------
+ 57edf4a22be3c955ac49da2e2107b67a
+(1 row)
+
diff --git a/contrib/pgcrypto/expected/rijndael.out b/contrib/pgcrypto/expected/rijndael.out
new file mode 100644 (file)
index 0000000..2f64268
--- /dev/null
@@ -0,0 +1,69 @@
+--
+-- 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)
+
diff --git a/contrib/pgcrypto/expected/sha1.out b/contrib/pgcrypto/expected/sha1.out
new file mode 100644 (file)
index 0000000..430c881
--- /dev/null
@@ -0,0 +1,45 @@
+--
+-- SHA1 message digest
+--
+select encode(digest('', 'sha1'), 'hex');
+                  encode                  
+------------------------------------------
+ da39a3ee5e6b4b0d3255bfef95601890afd80709
+(1 row)
+
+select encode(digest('a', 'sha1'), 'hex');
+                  encode                  
+------------------------------------------
+ 86f7e437faa5a7fce15d1ddcb9eaeaea377667b8
+(1 row)
+
+select encode(digest('abc', 'sha1'), 'hex');
+                  encode                  
+------------------------------------------
+ a9993e364706816aba3e25717850c26c9cd0d89d
+(1 row)
+
+select encode(digest('message digest', 'sha1'), 'hex');
+                  encode                  
+------------------------------------------
+ c12252ceda8be8994d5fa0290a47231c1d16aae3
+(1 row)
+
+select encode(digest('abcdefghijklmnopqrstuvwxyz', 'sha1'), 'hex');
+                  encode                  
+------------------------------------------
+ 32d10c7b8cf96570ca04ce37f2a19d84240d3a89
+(1 row)
+
+select encode(digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'sha1'), 'hex');
+                  encode                  
+------------------------------------------
+ 761c457bf73b14d27e9e9265c46f4b4dda11f940
+(1 row)
+
+select encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'sha1'), 'hex');
+                  encode                  
+------------------------------------------
+ 50abf5706a150990a08b2c5ea40fa0e585554732
+(1 row)
+
diff --git a/contrib/pgcrypto/sql/blowfish.sql b/contrib/pgcrypto/sql/blowfish.sql
new file mode 100644 (file)
index 0000000..e1fa7b1
--- /dev/null
@@ -0,0 +1,66 @@
+--
+-- Blowfish cipher
+--
+
+-- 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');
+
+-- setkey
+select encode(encrypt(
+decode('fedcba9876543210', 'hex'),
+decode('f0e1d2c3b4a5968778695a4b3c2d1e0f', 'hex'),
+'bf-ecb/pad:none'), 'hex');
+
+-- with padding
+select encode(encrypt(
+decode('01234567890123456789', 'hex'),
+decode('33443344334433443344334433443344', 'hex'),
+'bf-ecb'), 'hex');
+
+-- cbc
+
+-- 28 bytes key
+select encode(encrypt(
+decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5', 'hex'),
+decode('37363534333231204e6f77206973207468652074696d6520666f7220', 'hex'),
+'bf-cbc'), 'hex');
+
+-- 29 bytes key
+select encode(encrypt(
+decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc', 'hex'),
+decode('37363534333231204e6f77206973207468652074696d6520666f722000', 'hex'),
+'bf-cbc'), 'hex');
+
diff --git a/contrib/pgcrypto/sql/crypt-blowfish.sql b/contrib/pgcrypto/sql/crypt-blowfish.sql
new file mode 100644 (file)
index 0000000..6b82fdf
--- /dev/null
@@ -0,0 +1,17 @@
+--
+-- crypt() and gen_salt(): bcrypt
+--
+
+select crypt('', '$2a$06$RQiOJ.3ELirrXwxIZY8q0O');
+
+select crypt('foox', '$2a$06$RQiOJ.3ELirrXwxIZY8q0O');
+
+create table ctest (data text, res text, salt text);
+insert into ctest values ('password', '', '');
+
+update ctest set salt = gen_salt('bf', 8);
+update ctest set res = crypt(data, salt);
+select res = crypt(data, res) as "worked" from ctest;
+
+drop table ctest;
+
diff --git a/contrib/pgcrypto/sql/crypt-des.sql b/contrib/pgcrypto/sql/crypt-des.sql
new file mode 100644 (file)
index 0000000..2a2fbfb
--- /dev/null
@@ -0,0 +1,17 @@
+--
+-- crypt() and gen_salt(): crypt-des
+--
+
+select crypt('', 'NB');
+
+select crypt('foox', 'NB');
+
+create table ctest (data text, res text, salt text);
+insert into ctest values ('password', '', '');
+
+update ctest set salt = gen_salt('des');
+update ctest set res = crypt(data, salt);
+select res = crypt(data, res) as "worked" from ctest;
+
+drop table ctest;
+
diff --git a/contrib/pgcrypto/sql/crypt-md5.sql b/contrib/pgcrypto/sql/crypt-md5.sql
new file mode 100644 (file)
index 0000000..8ef8dba
--- /dev/null
@@ -0,0 +1,17 @@
+--
+-- crypt() and gen_salt(): md5
+--
+
+select crypt('', '$1$Szzz0yzz');
+
+select crypt('foox', '$1$Szzz0yzz');
+
+create table ctest (data text, res text, salt text);
+insert into ctest values ('password', '', '');
+
+update ctest set salt = gen_salt('md5');
+update ctest set res = crypt(data, salt);
+select res = crypt(data, res) as "worked" from ctest;
+
+drop table ctest;
+
diff --git a/contrib/pgcrypto/sql/crypt-xdes.sql b/contrib/pgcrypto/sql/crypt-xdes.sql
new file mode 100644 (file)
index 0000000..6fd85b9
--- /dev/null
@@ -0,0 +1,17 @@
+--
+-- crypt() and gen_salt(): extended des
+--
+
+select crypt('', '_J9..j2zz');
+
+select crypt('foox', '_J9..j2zz');
+
+create table ctest (data text, res text, salt text);
+insert into ctest values ('password', '', '');
+
+update ctest set salt = gen_salt('xdes', 1001);
+update ctest set res = crypt(data, salt);
+select res = crypt(data, res) as "worked" from ctest;
+
+drop table ctest;
+
diff --git a/contrib/pgcrypto/sql/hmac-md5.sql b/contrib/pgcrypto/sql/hmac-md5.sql
new file mode 100644 (file)
index 0000000..d3cd1f6
--- /dev/null
@@ -0,0 +1,46 @@
+--
+-- HMAC-MD5
+--
+
+select encode(hmac(
+'Hi There',
+decode('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b', 'hex'),
+'md5'), 'hex');
+
+-- 2
+select encode(hmac(
+'Jefe',
+'what do ya want for nothing?',
+'md5'), 'hex');
+
+-- 3
+select encode(hmac(
+decode('dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd', 'hex'),
+decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
+'md5'), 'hex');
+
+-- 4
+select encode(hmac(
+decode('cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd', 'hex'),
+decode('0102030405060708090a0b0c0d0e0f10111213141516171819', 'hex'),
+'md5'), 'hex');
+
+-- 5
+select encode(hmac(
+'Test With Truncation',
+decode('0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c', 'hex'),
+'md5'), 'hex');
+
+-- 6
+select encode(hmac(
+'Test Using Larger Than Block-Size Key - Hash Key First',
+decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
+'md5'), 'hex');
+
+-- 7
+select encode(hmac(
+'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data',
+decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
+'md5'), 'hex');
+
+
diff --git a/contrib/pgcrypto/sql/hmac-sha1.sql b/contrib/pgcrypto/sql/hmac-sha1.sql
new file mode 100644 (file)
index 0000000..f08c438
--- /dev/null
@@ -0,0 +1,46 @@
+--
+-- HMAC-MD5
+--
+
+select encode(hmac(
+'Hi There',
+decode('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b', 'hex'),
+'sha1'), 'hex');
+
+-- 2
+select encode(hmac(
+'Jefe',
+'what do ya want for nothing?',
+'sha1'), 'hex');
+
+-- 3
+select encode(hmac(
+decode('dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd', 'hex'),
+decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
+'sha1'), 'hex');
+
+-- 4
+select encode(hmac(
+decode('cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd', 'hex'),
+decode('0102030405060708090a0b0c0d0e0f10111213141516171819', 'hex'),
+'sha1'), 'hex');
+
+-- 5
+select encode(hmac(
+'Test With Truncation',
+decode('0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c', 'hex'),
+'sha1'), 'hex');
+
+-- 6
+select encode(hmac(
+'Test Using Larger Than Block-Size Key - Hash Key First',
+decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
+'sha1'), 'hex');
+
+-- 7
+select encode(hmac(
+'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data',
+decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
+'sha1'), 'hex');
+
+
diff --git a/contrib/pgcrypto/sql/init.sql b/contrib/pgcrypto/sql/init.sql
new file mode 100644 (file)
index 0000000..8bddb73
--- /dev/null
@@ -0,0 +1,12 @@
+--
+-- init pgcrypto
+--
+
+\set ECHO none
+\i pgcrypto.sql
+\set ECHO all
+
+-- check for encoding fn's
+select encode('foo', 'hex');
+select decode('666f6f', 'hex');
+
diff --git a/contrib/pgcrypto/sql/md5.sql b/contrib/pgcrypto/sql/md5.sql
new file mode 100644 (file)
index 0000000..78e4cfe
--- /dev/null
@@ -0,0 +1,12 @@
+--
+-- 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');
+
diff --git a/contrib/pgcrypto/sql/rijndael.sql b/contrib/pgcrypto/sql/rijndael.sql
new file mode 100644 (file)
index 0000000..fbacdc6
--- /dev/null
@@ -0,0 +1,43 @@
+--
+-- AES / Rijndael-128 cipher
+--
+
+-- some standard Rijndael testvalues
+select encode(encrypt(
+decode('00112233445566778899aabbccddeeff', 'hex'),
+decode('000102030405060708090a0b0c0d0e0f', 'hex'),
+'aes-ecb/pad:none'), 'hex');
+
+select encode(encrypt(
+decode('00112233445566778899aabbccddeeff', 'hex'),
+decode('000102030405060708090a0b0c0d0e0f1011121314151617', 'hex'),
+'aes-ecb/pad:none'), 'hex');
+
+select encode(encrypt(
+decode('00112233445566778899aabbccddeeff', 'hex'),
+decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', 'hex'),
+'aes-ecb/pad:none'), 'hex');
+
+-- cbc
+select encode(encrypt(
+decode('00112233445566778899aabbccddeeff', 'hex'),
+decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', 'hex'),
+'aes-cbc/pad:none'), 'hex');
+
+-- key padding
+
+select encode(encrypt(
+decode('0011223344', 'hex'),
+decode('000102030405', 'hex'),
+'aes-cbc'), 'hex');
+
+select encode(encrypt(
+decode('0011223344', 'hex'),
+decode('000102030405060708090a0b0c0d0e0f10111213', 'hex'),
+'aes-cbc'), 'hex');
+
+select encode(encrypt(
+decode('0011223344', 'hex'),
+decode('000102030405060708090a0b0c0d0e0f101112131415161718191a1b', 'hex'),
+'aes-cbc'), 'hex');
+
diff --git a/contrib/pgcrypto/sql/sha1.sql b/contrib/pgcrypto/sql/sha1.sql
new file mode 100644 (file)
index 0000000..11ee542
--- /dev/null
@@ -0,0 +1,12 @@
+--
+-- 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');
+