crypt.h: remove initialized
* missing/crypt.h (struct crypt_data): remove unnecessary member "initialized". * missing/crypt.c (des_setkey_r): nothing to be initialized in crypt_data. * configure.in (struct crypt_data): check for "initialized" in struct crypt_data, which may be only in glibc, and isn't on AIX at least. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55272 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
200d4afd44
commit
40c3c3ec6c
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
|||||||
|
Sat Jun 4 10:54:52 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* missing/crypt.h (struct crypt_data): remove unnecessary member
|
||||||
|
"initialized".
|
||||||
|
|
||||||
|
* missing/crypt.c (des_setkey_r): nothing to be initialized in
|
||||||
|
crypt_data.
|
||||||
|
|
||||||
|
* configure.in (struct crypt_data): check for "initialized" in
|
||||||
|
struct crypt_data, which may be only in glibc, and isn't on AIX
|
||||||
|
at least.
|
||||||
|
|
||||||
Sat Jun 4 10:38:39 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Sat Jun 4 10:38:39 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* win32/win32.c: unify MAX_PATH, _MAX_PATH, and MAXPATHLEN to
|
* win32/win32.c: unify MAX_PATH, _MAX_PATH, and MAXPATHLEN to
|
||||||
|
@ -749,7 +749,9 @@ $(NEWLINE_C): $(srcdir)/enc/trans/newline.trans $(srcdir)/tool/transcode-tblgen.
|
|||||||
enc/trans/newline.$(OBJEXT): $(NEWLINE_C)
|
enc/trans/newline.$(OBJEXT): $(NEWLINE_C)
|
||||||
|
|
||||||
{$(VPATH)}missing/des_tables.c: $(srcdir)/missing/crypt.c
|
{$(VPATH)}missing/des_tables.c: $(srcdir)/missing/crypt.c
|
||||||
|
@$(ECHO) building make_des_table
|
||||||
$(Q) $(PURIFY) $(CC) $(CPPFLAGS) -DDUMP $(LDFLAGS) $(XLDFLAGS) $(LIBS) $(OUTFLAG)make_des_table $(srcdir)/missing/crypt.c
|
$(Q) $(PURIFY) $(CC) $(CPPFLAGS) -DDUMP $(LDFLAGS) $(XLDFLAGS) $(LIBS) $(OUTFLAG)make_des_table $(srcdir)/missing/crypt.c
|
||||||
|
@$(ECHO) generating $@
|
||||||
$(Q) $(MAKEDIRS) $(@D)
|
$(Q) $(MAKEDIRS) $(@D)
|
||||||
$(Q) ./make_des_table > $@
|
$(Q) ./make_des_table > $@
|
||||||
$(Q) $(RMALL) make_des_table*
|
$(Q) $(RMALL) make_des_table*
|
||||||
|
@ -2442,6 +2442,10 @@ main(int argc, char **argv)
|
|||||||
AS_IF([test "$rb_cv_getcwd_malloc" = no], [AC_DEFINE(NO_GETCWD_MALLOC, 1)])
|
AS_IF([test "$rb_cv_getcwd_malloc" = no], [AC_DEFINE(NO_GETCWD_MALLOC, 1)])
|
||||||
])
|
])
|
||||||
|
|
||||||
|
AS_IF([test "$ac_cv_func_crypt_r" = yes],
|
||||||
|
[AC_CHECK_MEMBERS([struct crypt_data.initialized], [], [],
|
||||||
|
[AC_INCLUDES_DEFAULT([@%:@include <crypt.h>])])])
|
||||||
|
|
||||||
AC_DEFUN([RUBY_CHECK_BUILTIN_FUNC], [dnl
|
AC_DEFUN([RUBY_CHECK_BUILTIN_FUNC], [dnl
|
||||||
AC_CACHE_CHECK([for $1], AS_TR_SH(rb_cv_builtin_$1),
|
AC_CACHE_CHECK([for $1], AS_TR_SH(rb_cv_builtin_$1),
|
||||||
[AC_LINK_IFELSE(
|
[AC_LINK_IFELSE(
|
||||||
|
@ -49,6 +49,10 @@ static char sccsid[] = "@(#)crypt.c 8.1 (Berkeley) 6/4/93";
|
|||||||
#define _PASSWORD_EFMT1 '_'
|
#define _PASSWORD_EFMT1 '_'
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef numberof
|
||||||
|
#define numberof(array) (int)(sizeof(array) / sizeof((array)[0]))
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* UNIX password, and DES, encryption.
|
* UNIX password, and DES, encryption.
|
||||||
* By Tom Truscott, trt@rti.rti.org,
|
* By Tom Truscott, trt@rti.rti.org,
|
||||||
@ -82,6 +86,14 @@ static char sccsid[] = "@(#)crypt.c 8.1 (Berkeley) 6/4/93";
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef INIT_DES
|
||||||
|
# if defined DUMP || defined NO_DES_TABLES
|
||||||
|
# define INIT_DES 1
|
||||||
|
# else
|
||||||
|
# define INIT_DES 0
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Convert twenty-four-bit long in host-order
|
* Convert twenty-four-bit long in host-order
|
||||||
* to six bits (and 2 low-order zeroes) per char little-endian format.
|
* to six bits (and 2 low-order zeroes) per char little-endian format.
|
||||||
@ -149,7 +161,7 @@ permute(const unsigned char *cp, C_block *out, register const C_block *p, int ch
|
|||||||
STATIC void prtab(const char *s, const unsigned char *t, int num_rows);
|
STATIC void prtab(const char *s, const unsigned char *t, int num_rows);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef DUMP
|
#if INIT_DES
|
||||||
/* ===== (mostly) Standard DES Tables ==================== */
|
/* ===== (mostly) Standard DES Tables ==================== */
|
||||||
|
|
||||||
static const unsigned char IP[] = { /* initial permutation */
|
static const unsigned char IP[] = { /* initial permutation */
|
||||||
@ -193,7 +205,7 @@ static const unsigned char Rotates[] = { /* PC1 rotation schedule */
|
|||||||
1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1,
|
1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef DUMP
|
#if INIT_DES
|
||||||
/* note: each "row" of PC2 is left-padded with bits that make it invertible */
|
/* note: each "row" of PC2 is left-padded with bits that make it invertible */
|
||||||
static const unsigned char PC2[] = { /* permuted choice table 2 */
|
static const unsigned char PC2[] = { /* permuted choice table 2 */
|
||||||
9, 18, 14, 17, 11, 24, 1, 5,
|
9, 18, 14, 17, 11, 24, 1, 5,
|
||||||
@ -309,7 +321,7 @@ static const unsigned char a64toi[256] = {
|
|||||||
A64TOI64(0x00), A64TOI64(0x40),
|
A64TOI64(0x00), A64TOI64(0x40),
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef DUMP
|
#if INIT_DES
|
||||||
/* ===== Tables that are initialized at run time ==================== */
|
/* ===== Tables that are initialized at run time ==================== */
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -351,7 +363,6 @@ static const C_block constdatablock = {{0}}; /* encryption constant */
|
|||||||
|
|
||||||
#define KS (data->KS)
|
#define KS (data->KS)
|
||||||
#define cryptresult (data->cryptresult)
|
#define cryptresult (data->cryptresult)
|
||||||
#define des_ready (data->initialized)
|
|
||||||
|
|
||||||
static void des_setkey_r(const unsigned char *key, struct crypt_data *data);
|
static void des_setkey_r(const unsigned char *key, struct crypt_data *data);
|
||||||
static void des_cipher_r(const unsigned char *in, unsigned char *out, long salt, int num_iter, struct crypt_data *data);
|
static void des_cipher_r(const unsigned char *in, unsigned char *out, long salt, int num_iter, struct crypt_data *data);
|
||||||
@ -472,16 +483,12 @@ des_setkey_r(const unsigned char *key, struct crypt_data *data)
|
|||||||
register int i;
|
register int i;
|
||||||
C_block *ksp;
|
C_block *ksp;
|
||||||
|
|
||||||
if (!des_ready) {
|
init_des();
|
||||||
memset(data, 0, sizeof(*data));
|
|
||||||
init_des();
|
|
||||||
des_ready = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
PERM6464(K,K0,K1,key,PC1ROT[0]);
|
PERM6464(K,K0,K1,key,PC1ROT[0]);
|
||||||
ksp = &KS[0];
|
ksp = &KS[0];
|
||||||
STORE(K&~0x03030303L, K0&~0x03030303L, K1, *ksp);
|
STORE(K&~0x03030303L, K0&~0x03030303L, K1, *ksp);
|
||||||
for (i = 1; i < 16; i++) {
|
for (i = 1; i < numberof(KS); i++) {
|
||||||
ksp++;
|
ksp++;
|
||||||
STORE(K,K0,K1,*ksp);
|
STORE(K,K0,K1,*ksp);
|
||||||
ptabp = PC2ROT[Rotates[i]-1][0];
|
ptabp = PC2ROT[Rotates[i]-1][0];
|
||||||
@ -612,9 +619,8 @@ des_cipher_r(const unsigned char *in, unsigned char *out, long salt, int num_ite
|
|||||||
#undef des_tables
|
#undef des_tables
|
||||||
#undef KS
|
#undef KS
|
||||||
#undef cryptresult
|
#undef cryptresult
|
||||||
#undef des_ready
|
|
||||||
|
|
||||||
#ifdef DUMP
|
#if INIT_DES
|
||||||
/*
|
/*
|
||||||
* Initialize various tables. This need only be done once. It could even be
|
* 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.
|
* done at compile time, if the compiler were capable of that sort of thing.
|
||||||
@ -862,9 +868,6 @@ prtab(const char *s, const unsigned char *t, int num_rows)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef DUMP
|
#ifdef DUMP
|
||||||
#ifndef numberof
|
|
||||||
#define numberof(array) (int )(sizeof(array) / sizeof((array)[0]))
|
|
||||||
#endif
|
|
||||||
void
|
void
|
||||||
dump_block(const C_block *block)
|
dump_block(const C_block *block)
|
||||||
{
|
{
|
||||||
|
@ -224,7 +224,6 @@ struct crypt_data {
|
|||||||
/* ==================================== */
|
/* ==================================== */
|
||||||
|
|
||||||
char cryptresult[1+4+4+11+1]; /* encrypted result */
|
char cryptresult[1+4+4+11+1]; /* encrypted result */
|
||||||
int initialized;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
char *crypt(const char *key, const char *setting);
|
char *crypt(const char *key, const char *setting);
|
||||||
|
2
string.c
2
string.c
@ -8424,7 +8424,9 @@ rb_str_crypt(VALUE str, VALUE salt)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_CRYPT_R
|
#ifdef HAVE_CRYPT_R
|
||||||
|
# ifdef HAVE_STRUCT_CRYPT_DATA_INITIALIZED
|
||||||
data.initialized = 0;
|
data.initialized = 0;
|
||||||
|
# endif
|
||||||
res = crypt_r(s, saltp, &data);
|
res = crypt_r(s, saltp, &data);
|
||||||
#else
|
#else
|
||||||
res = crypt(s, saltp);
|
res = crypt(s, saltp);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user