diff options
author | knu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-06-06 10:39:57 +0000 |
---|---|---|
committer | knu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-06-06 10:39:57 +0000 |
commit | 2b785b0f3e4f902e7de29a895d1f6ae0f10c3265 (patch) | |
tree | bc1801ecbd4d1e852a5ae0a0b8202a41c7ec933b /missing | |
parent | 23a434b3630b05781dc48e07582ed180d9661a6a (diff) |
Merge changes from ruby_1_8 to reduce warnings and potentially improve
security.
* mkconfig.rb: hide build path from rbconfig.rb.
* util.c (ruby_strtod, dtoa): initialize more variables for error
handling.
* io.c (rscheck), marshal.c (w_nbyte, w_bytes, w_unique),
(path2class, path2module): constified.
* pack.c (pack_unpack), process.c (rb_syswait): suppress warnings.
* suppress warnings on cygwin, mingw and mswin.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@16863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'missing')
-rw-r--r-- | missing/crypt.c | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/missing/crypt.c b/missing/crypt.c index 486df5050b..32736bccfb 100644 --- a/missing/crypt.c +++ b/missing/crypt.c @@ -107,13 +107,15 @@ static char sccsid[] = "@(#)crypt.c 8.1 (Berkeley) 6/4/93"; #define LARGEDATA #endif +int des_setkey(), des_cipher(); + /* compile with "-DSTATIC=int" when profiling */ #ifndef STATIC #define STATIC static #endif -STATIC init_des(), init_perm(), permute(); +STATIC void init_des(), init_perm(), permute(); #ifdef DEBUG -STATIC prtab(); +STATIC void prtab(); #endif /* ==================================== */ @@ -299,7 +301,7 @@ typedef union { #define PERM3264(d,d0,d1,cpp,p) \ { C_block tblk; permute(cpp,&tblk,p,4); LOAD (d,d0,d1,tblk); } -STATIC +STATIC void permute(cp, out, p, chars_in) unsigned char *cp; C_block *out; @@ -377,46 +379,62 @@ static unsigned char PC2[] = { /* permuted choice table 2 */ }; static unsigned char S[8][64] = { /* 48->32 bit substitution tables */ + { /* S[1] */ 14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7, 0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8, 4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0, 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13, + }, + { /* S[2] */ 15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10, 3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5, 0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15, 13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9, + }, + { /* S[3] */ 10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8, 13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1, 13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7, 1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12, + }, + { /* S[4] */ 7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15, 13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9, 10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4, 3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14, + }, + { /* S[5] */ 2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9, 14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6, 4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14, 11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3, + }, + { /* S[6] */ 12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11, 10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8, 9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6, 4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13, + }, + { /* S[7] */ 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1, 13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6, 1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2, 6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12, + }, + { /* S[8] */ 13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7, 1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2, 7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8, 2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11, + }, }; static unsigned char P32Tr[] = { /* 32-bit permutation function */ @@ -580,6 +598,7 @@ static C_block KS[KS_SIZE]; /* * Set up the key schedule from the key. */ +int des_setkey(key) register const char *key; { @@ -614,6 +633,7 @@ des_setkey(key) * NOTE: the performance of this routine is critically dependent on your * compiler and machine architecture. */ +int des_cipher(in, out, salt, num_iter) const char *in; char *out; @@ -734,7 +754,7 @@ des_cipher(in, out, salt, num_iter) * Initialize various tables. This need only be done once. It could even be * done at compile time, if the compiler were capable of that sort of thing. */ -STATIC +STATIC void init_des() { register int i, j; @@ -878,7 +898,7 @@ init_des() * * "perm" must be all-zeroes on entry to this routine. */ -STATIC +STATIC void init_perm(perm, p, chars_in, chars_out) C_block perm[64/CHUNKBITS][1<<CHUNKBITS]; unsigned char p[64]; @@ -902,6 +922,7 @@ init_perm(perm, p, chars_in, chars_out) /* * "setkey" routine (for backwards compatibility) */ +int setkey(key) register const char *key; { @@ -922,6 +943,7 @@ setkey(key) /* * "encrypt" routine (for backwards compatibility) */ +int encrypt(block, flag) register char *block; int flag; @@ -950,7 +972,7 @@ encrypt(block, flag) } #ifdef DEBUG -STATIC +STATIC void prtab(s, t, num_rows) char *s; unsigned char *t; |