1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

des_tables.c: generation rule

* defs/gmake.mk (missing/des_tables.c): move the recipe from
  common.mk.  this is less common.

* missing/crypt.c (init_des): if des_tables.c is empty, initialize
  DES tables at runtime.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2016-06-04 02:40:04 +00:00
parent 1f3ec6d858
commit b1b1f3ded2
4 changed files with 28 additions and 12 deletions

View file

@ -93,6 +93,15 @@ static char sccsid[] = "@(#)crypt.c 8.1 (Berkeley) 6/4/93";
# define INIT_DES 0
# endif
#endif
#if !INIT_DES
# include "des_tables.c"
# ifdef HAVE_DES_TABLES
# define init_des() ((void)0)
# else
# undef INIT_DES
# define INIT_DES 1
# endif
#endif
/*
* Convert twenty-four-bit long in host-order
@ -353,10 +362,6 @@ static des_tables_t des_tables[1];
STATIC void init_des(void);
STATIC void init_perm(C_block perm[64/CHUNKBITS][1<<CHUNKBITS], unsigned char p[64], int chars_in, int chars_out);
#else
#include "des_tables.c"
#define init_des() ((void)0)
#endif
static const C_block constdatablock = {{0}}; /* encryption constant */
@ -884,6 +889,8 @@ main(void)
{
int i, j, k;
init_des();
printf("#ifndef HAVE_DES_TABLES\n\n");
printf("/* Initial key schedule permutation */\n");
printf("static const C_block PC1ROT[64/CHUNKBITS][1<<CHUNKBITS] = {\n");
for (i = 0; i < numberof(PC1ROT); ++i) {
@ -953,6 +960,7 @@ main(void)
printf("\t},\n");
}
printf("};\n\n");
printf("#define HAVE_DES_TABLES 1\n""#endif\n");
return 0;
}