Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit807bbe6

Browse files
committed
More pgcrypto fixes: handle long messages correctly, suppress
compiler warnings. Marko Kreen and Kris Jurka.
1 parent7f0b690 commit807bbe6

File tree

12 files changed

+104
-11
lines changed

12 files changed

+104
-11
lines changed

‎contrib/pgcrypto/expected/3des.out

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,16 @@ select decrypt_iv(decode('50735067b073bb93', 'hex'), '0123456', 'abcd', '3des');
5454
foo
5555
(1 row)
5656

57+
-- long message
58+
select encode(encrypt('Lets try a longer message.', '0123456789012345678901', '3des'), 'hex');
59+
encode
60+
------------------------------------------------------------------
61+
b71e3422269d0ded19468f33d65cd663c28e0871984792a7b3ba0ddcecec8d2c
62+
(1 row)
63+
64+
select decrypt(encrypt('Lets try a longer message.', '0123456789012345678901', '3des'), '0123456789012345678901', '3des');
65+
decrypt
66+
----------------------------
67+
Lets try a longer message.
68+
(1 row)
69+

‎contrib/pgcrypto/expected/blowfish.out

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,3 +158,16 @@ select decrypt_iv(decode('95c7e89322525d59', 'hex'), '0123456', 'abcd', 'bf');
158158
foo
159159
(1 row)
160160

161+
-- long message
162+
select encode(encrypt('Lets try a longer message.', '0123456789', 'bf'), 'hex');
163+
encode
164+
------------------------------------------------------------------
165+
a76059f7a1b627b5b84080d9beb337714c7a7f8b70300023e5feb6dfa6813536
166+
(1 row)
167+
168+
select decrypt(encrypt('Lets try a longer message.', '0123456789', 'bf'), '0123456789', 'bf');
169+
decrypt
170+
----------------------------
171+
Lets try a longer message.
172+
(1 row)
173+

‎contrib/pgcrypto/expected/cast5.out

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,3 +71,16 @@ select decrypt_iv(decode('384a970695ce016a', 'hex'),
7171
foo
7272
(1 row)
7373

74+
-- long message
75+
select encode(encrypt('Lets try a longer message.', '0123456789', 'cast5'), 'hex');
76+
encode
77+
------------------------------------------------------------------
78+
04fcffc91533e1505dadcb10766d9fed0937818e663e402384e049942ba60fff
79+
(1 row)
80+
81+
select decrypt(encrypt('Lets try a longer message.', '0123456789', 'cast5'), '0123456789', 'cast5');
82+
decrypt
83+
----------------------------
84+
Lets try a longer message.
85+
(1 row)
86+

‎contrib/pgcrypto/expected/des.out

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,16 @@ select decrypt_iv(decode('50735067b073bb93', 'hex'), '0123456', 'abcd', 'des');
4646
foo
4747
(1 row)
4848

49+
-- long message
50+
select encode(encrypt('Lets try a longer message.', '01234567', 'des'), 'hex');
51+
encode
52+
------------------------------------------------------------------
53+
5ad146043e5f30967e06a0fcbae602daf4ff2a5fd0ed12d6c5913cf85f1e36ca
54+
(1 row)
55+
56+
select decrypt(encrypt('Lets try a longer message.', '01234567', 'des'), '01234567', 'des');
57+
decrypt
58+
----------------------------
59+
Lets try a longer message.
60+
(1 row)
61+

‎contrib/pgcrypto/expected/rijndael.out

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,3 +109,16 @@ select decrypt_iv(decode('2c24cb7da91d6d5699801268b0f5adad', 'hex'),
109109
foo
110110
(1 row)
111111

112+
-- long message
113+
select encode(encrypt('Lets try a longer message.', '0123456789', 'aes'), 'hex');
114+
encode
115+
------------------------------------------------------------------
116+
d9beb785dd5403ed02f66b755bb191b93ed93ca54930153f2c3b9ec7785056ad
117+
(1 row)
118+
119+
select decrypt(encrypt('Lets try a longer message.', '0123456789', 'aes'), '0123456789', 'aes');
120+
decrypt
121+
----------------------------
122+
Lets try a longer message.
123+
(1 row)
124+

‎contrib/pgcrypto/openssl.c

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2727
* SUCH DAMAGE.
2828
*
29-
* $PostgreSQL: pgsql/contrib/pgcrypto/openssl.c,v 1.24 2005/07/11 15:07:59 tgl Exp $
29+
* $PostgreSQL: pgsql/contrib/pgcrypto/openssl.c,v 1.25 2005/07/12 20:27:42 tgl Exp $
3030
*/
3131

3232
#include"postgres.h"
@@ -40,6 +40,11 @@
4040
#include<openssl/rand.h>
4141
#include<openssl/err.h>
4242

43+
/*
44+
* Max lengths we might want to handle.
45+
*/
46+
#defineMAX_KEY(512/8)
47+
#defineMAX_IV(128/8)
4348

4449
/*
4550
* Does OpenSSL support AES?
@@ -78,10 +83,13 @@
7883
#defineAES_cbc_encrypt(src,dst,len,ctx,iv,enc) \
7984
do { \
8085
memcpy((dst), (src), (len)); \
81-
if (enc) \
86+
if (enc){\
8287
aes_cbc_encrypt((ctx), (iv), (dst), (len)); \
83-
else \
88+
memcpy((iv), (dst) + (len) - 16, 16); \
89+
} else { \
8490
aes_cbc_decrypt((ctx), (iv), (dst), (len)); \
91+
memcpy(iv, (src) + (len) - 16, 16); \
92+
} \
8593
} while (0)
8694

8795
#endif/* old OPENSSL */
@@ -243,8 +251,8 @@ typedef struct
243251
CAST_KEYcast_key;
244252
AES_KEYaes_key;
245253
}u;
246-
uint8key[EVP_MAX_KEY_LENGTH];
247-
uint8iv[EVP_MAX_IV_LENGTH];
254+
uint8key[MAX_KEY];
255+
uint8iv[MAX_IV];
248256
unsignedklen;
249257
unsignedinit;
250258
conststructossl_cipher*ciph;

‎contrib/pgcrypto/sha2.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
*
3434
* $From: sha2.c,v 1.1 2001/11/08 00:01:51 adg Exp adg $
3535
*
36-
* $PostgreSQL: pgsql/contrib/pgcrypto/sha2.c,v 1.3 2005/07/11 15:40:38 tgl Exp $
36+
* $PostgreSQL: pgsql/contrib/pgcrypto/sha2.c,v 1.4 2005/07/12 20:27:42 tgl Exp $
3737
*/
3838

3939
#include"postgres.h"
@@ -170,7 +170,7 @@ void SHA512_Transform(SHA512_CTX *, const uint8 *);
170170

171171
/*** SHA-XYZ INITIAL HASH VALUES AND CONSTANTS ************************/
172172
/* Hash constant words K for SHA-256: */
173-
conststaticuint32K256[64]= {
173+
staticconstuint32K256[64]= {
174174
0x428a2f98UL,0x71374491UL,0xb5c0fbcfUL,0xe9b5dba5UL,
175175
0x3956c25bUL,0x59f111f1UL,0x923f82a4UL,0xab1c5ed5UL,
176176
0xd807aa98UL,0x12835b01UL,0x243185beUL,0x550c7dc3UL,
@@ -190,7 +190,7 @@ const static uint32 K256[64] = {
190190
};
191191

192192
/* Initial hash value H for SHA-256: */
193-
conststaticuint32sha256_initial_hash_value[8]= {
193+
staticconstuint32sha256_initial_hash_value[8]= {
194194
0x6a09e667UL,
195195
0xbb67ae85UL,
196196
0x3c6ef372UL,
@@ -202,7 +202,7 @@ const static uint32 sha256_initial_hash_value[8] = {
202202
};
203203

204204
/* Hash constant words K for SHA-384 and SHA-512: */
205-
conststaticuint64K512[80]= {
205+
staticconstuint64K512[80]= {
206206
0x428a2f98d728ae22ULL,0x7137449123ef65cdULL,
207207
0xb5c0fbcfec4d3b2fULL,0xe9b5dba58189dbbcULL,
208208
0x3956c25bf348b538ULL,0x59f111f1b605d019ULL,
@@ -246,7 +246,7 @@ const static uint64 K512[80] = {
246246
};
247247

248248
/* Initial hash value H for SHA-384 */
249-
conststaticuint64sha384_initial_hash_value[8]= {
249+
staticconstuint64sha384_initial_hash_value[8]= {
250250
0xcbbb9d5dc1059ed8ULL,
251251
0x629a292a367cd507ULL,
252252
0x9159015a3070dd17ULL,
@@ -258,7 +258,7 @@ const static uint64 sha384_initial_hash_value[8] = {
258258
};
259259

260260
/* Initial hash value H for SHA-512 */
261-
conststaticuint64sha512_initial_hash_value[8]= {
261+
staticconstuint64sha512_initial_hash_value[8]= {
262262
0x6a09e667f3bcc908ULL,
263263
0xbb67ae8584caa73bULL,
264264
0x3c6ef372fe94f82bULL,

‎contrib/pgcrypto/sql/3des.sql

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,7 @@ select decrypt(encrypt('foo', '0123456', '3des'), '0123456', '3des');
2424
select encode(encrypt_iv('foo','0123456','abcd','3des'),'hex');
2525
select decrypt_iv(decode('50735067b073bb93','hex'),'0123456','abcd','3des');
2626

27+
-- long message
28+
select encode(encrypt('Lets try a longer message.','0123456789012345678901','3des'),'hex');
29+
select decrypt(encrypt('Lets try a longer message.','0123456789012345678901','3des'),'0123456789012345678901','3des');
30+

‎contrib/pgcrypto/sql/blowfish.sql

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,7 @@ select decrypt(encrypt('foo', '0123456', 'bf'), '0123456', 'bf');
8585
select encode(encrypt_iv('foo','0123456','abcd','bf'),'hex');
8686
select decrypt_iv(decode('95c7e89322525d59','hex'),'0123456','abcd','bf');
8787

88+
-- long message
89+
select encode(encrypt('Lets try a longer message.','0123456789','bf'),'hex');
90+
select decrypt(encrypt('Lets try a longer message.','0123456789','bf'),'0123456789','bf');
91+

‎contrib/pgcrypto/sql/cast5.sql

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,7 @@ select encode(encrypt_iv('foo', '0123456', 'abcd', 'cast5'), 'hex');
4040
select decrypt_iv(decode('384a970695ce016a','hex'),
4141
'0123456','abcd','cast5');
4242

43+
-- long message
44+
select encode(encrypt('Lets try a longer message.','0123456789','cast5'),'hex');
45+
select decrypt(encrypt('Lets try a longer message.','0123456789','cast5'),'0123456789','cast5');
46+

‎contrib/pgcrypto/sql/des.sql

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,7 @@ select decrypt(encrypt('foo', '0123456', 'des'), '0123456', 'des');
2222
select encode(encrypt_iv('foo','0123456','abcd','des'),'hex');
2323
select decrypt_iv(decode('50735067b073bb93','hex'),'0123456','abcd','des');
2424

25+
-- long message
26+
select encode(encrypt('Lets try a longer message.','01234567','des'),'hex');
27+
select decrypt(encrypt('Lets try a longer message.','01234567','des'),'01234567','des');
28+

‎contrib/pgcrypto/sql/rijndael.sql

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,7 @@ select encode(encrypt_iv('foo', '0123456', 'abcd', 'aes'), 'hex');
5656
select decrypt_iv(decode('2c24cb7da91d6d5699801268b0f5adad','hex'),
5757
'0123456','abcd','aes');
5858

59+
-- long message
60+
select encode(encrypt('Lets try a longer message.','0123456789','aes'),'hex');
61+
select decrypt(encrypt('Lets try a longer message.','0123456789','aes'),'0123456789','aes');
62+

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp