cryptacular
Advanced tools
| /* | ||
| * Written by Solar Designer <solar at openwall.com> in 2000-2011. | ||
| * No copyright is claimed, and the software is hereby placed in the public | ||
| * domain. In case this attempt to disclaim copyright and place the software | ||
| * in the public domain is deemed null and void, then the software is | ||
| * Copyright (c) 2000-2011 Solar Designer and it is hereby released to the | ||
| * general public under the following terms: | ||
| * | ||
| * Redistribution and use in source and binary forms, with or without | ||
| * modification, are permitted. | ||
| * | ||
| * There's ABSOLUTELY NO WARRANTY, express or implied. | ||
| * | ||
| * See crypt_blowfish.c for more information. | ||
| */ | ||
| #ifndef _CRYPT_BLOWFISH_H | ||
| #define _CRYPT_BLOWFISH_H | ||
| extern int _crypt_output_magic(const char *setting, char *output, int size); | ||
| extern char *_crypt_blowfish_rn(const char *key, const char *setting, | ||
| char *output, int size); | ||
| extern char *_crypt_gensalt_blowfish_rn(const char *prefix, | ||
| unsigned long count, | ||
| const char *input, int size, char *output, int output_size); | ||
| #endif |
Sorry, the diff of this file is not supported yet
| /* | ||
| * Written by Solar Designer <solar at openwall.com> in 2000-2011. | ||
| * No copyright is claimed, and the software is hereby placed in the public | ||
| * domain. In case this attempt to disclaim copyright and place the software | ||
| * in the public domain is deemed null and void, then the software is | ||
| * Copyright (c) 2000-2011 Solar Designer and it is hereby released to the | ||
| * general public under the following terms: | ||
| * | ||
| * Redistribution and use in source and binary forms, with or without | ||
| * modification, are permitted. | ||
| * | ||
| * There's ABSOLUTELY NO WARRANTY, express or implied. | ||
| * | ||
| * See crypt_blowfish.c for more information. | ||
| */ | ||
| #ifndef _CRYPT_GENSALT_H | ||
| #define _CRYPT_GENSALT_H | ||
| extern unsigned char _crypt_itoa64[]; | ||
| extern char *_crypt_gensalt_traditional_rn(const char *prefix, | ||
| unsigned long count, | ||
| const char *input, int size, char *output, int output_size); | ||
| extern char *_crypt_gensalt_extended_rn(const char *prefix, | ||
| unsigned long count, | ||
| const char *input, int size, char *output, int output_size); | ||
| extern char *_crypt_gensalt_md5_rn(const char *prefix, unsigned long count, | ||
| const char *input, int size, char *output, int output_size); | ||
| #endif |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
| --- glibc-2.1.3.orig/crypt/sysdeps/unix/Makefile 1997-03-05 00:33:59 +0000 | ||
| +++ glibc-2.1.3/crypt/sysdeps/unix/Makefile 2000-06-11 03:13:41 +0000 | ||
| @@ -1,4 +1,4 @@ | ||
| ifeq ($(subdir),md5-crypt) | ||
| -libcrypt-routines += crypt crypt_util | ||
| -dont_distribute += crypt.c crypt_util.c | ||
| +libcrypt-routines += crypt crypt_util crypt_blowfish x86 crypt_gensalt wrapper | ||
| +dont_distribute += crypt.c crypt_util.c crypt_blowfish.c x86.S crypt_gensalt.c wrapper.c | ||
| endif | ||
| --- glibc-2.1.3.orig/crypt/sysdeps/unix/crypt-entry.c 1998-12-10 12:49:04 +0000 | ||
| +++ glibc-2.1.3/crypt/sysdeps/unix/crypt-entry.c 2000-06-11 03:14:57 +0000 | ||
| @@ -70,7 +70,7 @@ extern struct crypt_data _ufc_foobar; | ||
| */ | ||
| char * | ||
| -__crypt_r (key, salt, data) | ||
| +__des_crypt_r (key, salt, data) | ||
| const char *key; | ||
| const char *salt; | ||
| struct crypt_data * __restrict data; | ||
| @@ -115,6 +115,7 @@ __crypt_r (key, salt, data) | ||
| _ufc_output_conversion_r (res[0], res[1], salt, data); | ||
| return data->crypt_3_buf; | ||
| } | ||
| +#if 0 | ||
| weak_alias (__crypt_r, crypt_r) | ||
| char * | ||
| @@ -147,3 +148,4 @@ __fcrypt (key, salt) | ||
| return crypt (key, salt); | ||
| } | ||
| #endif | ||
| +#endif | ||
| --- glibc-2.1.3.orig/md5-crypt/Makefile 1998-07-02 22:46:47 +0000 | ||
| +++ glibc-2.1.3/md5-crypt/Makefile 2000-06-11 03:12:34 +0000 | ||
| @@ -21,7 +21,7 @@ | ||
| # | ||
| subdir := md5-crypt | ||
| -headers := crypt.h | ||
| +headers := crypt.h gnu-crypt.h ow-crypt.h | ||
| distribute := md5.h | ||
| --- glibc-2.1.3.orig/md5-crypt/Versions 1998-07-02 22:32:07 +0000 | ||
| +++ glibc-2.1.3/md5-crypt/Versions 2000-06-11 09:11:03 +0000 | ||
| @@ -1,5 +1,6 @@ | ||
| libcrypt { | ||
| GLIBC_2.0 { | ||
| crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; | ||
| + crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; | ||
| } | ||
| } |
| diff -urp glibc-2.14.orig/crypt/Makefile glibc-2.14/crypt/Makefile | ||
| --- glibc-2.14.orig/crypt/Makefile 2011-05-31 04:12:33 +0000 | ||
| +++ glibc-2.14/crypt/Makefile 2011-07-16 21:40:56 +0000 | ||
| @@ -22,6 +22,7 @@ | ||
| subdir := crypt | ||
| headers := crypt.h | ||
| +headers += gnu-crypt.h ow-crypt.h | ||
| extra-libs := libcrypt | ||
| extra-libs-others := $(extra-libs) | ||
| @@ -29,6 +30,8 @@ extra-libs-others := $(extra-libs) | ||
| libcrypt-routines := crypt-entry md5-crypt sha256-crypt sha512-crypt crypt \ | ||
| crypt_util | ||
| +libcrypt-routines += crypt_blowfish x86 crypt_gensalt wrapper | ||
| + | ||
| tests := cert md5c-test sha256c-test sha512c-test | ||
| distribute := ufc-crypt.h crypt-private.h ufc.c speeds.c README.ufc-crypt \ | ||
| diff -urp glibc-2.14.orig/crypt/Versions glibc-2.14/crypt/Versions | ||
| --- glibc-2.14.orig/crypt/Versions 2011-05-31 04:12:33 +0000 | ||
| +++ glibc-2.14/crypt/Versions 2011-07-16 21:40:56 +0000 | ||
| @@ -1,5 +1,6 @@ | ||
| libcrypt { | ||
| GLIBC_2.0 { | ||
| crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; | ||
| + crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; | ||
| } | ||
| } | ||
| diff -urp glibc-2.14.orig/crypt/crypt-entry.c glibc-2.14/crypt/crypt-entry.c | ||
| --- glibc-2.14.orig/crypt/crypt-entry.c 2011-05-31 04:12:33 +0000 | ||
| +++ glibc-2.14/crypt/crypt-entry.c 2011-07-16 21:40:56 +0000 | ||
| @@ -82,7 +82,7 @@ extern struct crypt_data _ufc_foobar; | ||
| */ | ||
| char * | ||
| -__crypt_r (key, salt, data) | ||
| +__des_crypt_r (key, salt, data) | ||
| const char *key; | ||
| const char *salt; | ||
| struct crypt_data * __restrict data; | ||
| @@ -137,6 +137,7 @@ __crypt_r (key, salt, data) | ||
| _ufc_output_conversion_r (res[0], res[1], salt, data); | ||
| return data->crypt_3_buf; | ||
| } | ||
| +#if 0 | ||
| weak_alias (__crypt_r, crypt_r) | ||
| char * | ||
| @@ -177,3 +178,4 @@ __fcrypt (key, salt) | ||
| return crypt (key, salt); | ||
| } | ||
| #endif | ||
| +#endif |
| --- glibc-2.3.6.orig/crypt/Makefile 2001-07-06 04:54:45 +0000 | ||
| +++ glibc-2.3.6/crypt/Makefile 2004-02-27 00:23:48 +0000 | ||
| @@ -21,14 +21,14 @@ | ||
| # | ||
| subdir := crypt | ||
| -headers := crypt.h | ||
| +headers := crypt.h gnu-crypt.h ow-crypt.h | ||
| distribute := md5.h | ||
| extra-libs := libcrypt | ||
| extra-libs-others := $(extra-libs) | ||
| -libcrypt-routines := crypt-entry md5-crypt md5 crypt crypt_util | ||
| +libcrypt-routines := crypt-entry md5-crypt md5 crypt crypt_util crypt_blowfish x86 crypt_gensalt wrapper | ||
| tests = cert md5test md5c-test | ||
| --- glibc-2.3.6.orig/crypt/Versions 2000-03-04 00:47:30 +0000 | ||
| +++ glibc-2.3.6/crypt/Versions 2004-02-27 00:25:15 +0000 | ||
| @@ -1,5 +1,6 @@ | ||
| libcrypt { | ||
| GLIBC_2.0 { | ||
| crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; | ||
| + crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; | ||
| } | ||
| } | ||
| --- glibc-2.3.6.orig/crypt/crypt-entry.c 2001-07-06 05:18:49 +0000 | ||
| +++ glibc-2.3.6/crypt/crypt-entry.c 2004-02-27 00:12:32 +0000 | ||
| @@ -70,7 +70,7 @@ extern struct crypt_data _ufc_foobar; | ||
| */ | ||
| char * | ||
| -__crypt_r (key, salt, data) | ||
| +__des_crypt_r (key, salt, data) | ||
| const char *key; | ||
| const char *salt; | ||
| struct crypt_data * __restrict data; | ||
| @@ -115,6 +115,7 @@ __crypt_r (key, salt, data) | ||
| _ufc_output_conversion_r (res[0], res[1], salt, data); | ||
| return data->crypt_3_buf; | ||
| } | ||
| +#if 0 | ||
| weak_alias (__crypt_r, crypt_r) | ||
| char * | ||
| @@ -147,3 +148,4 @@ __fcrypt (key, salt) | ||
| return crypt (key, salt); | ||
| } | ||
| #endif | ||
| +#endif |
Sorry, the diff of this file is not supported yet
| # | ||
| # Written and revised by Solar Designer <solar at openwall.com> in 2000-2011. | ||
| # No copyright is claimed, and the software is hereby placed in the public | ||
| # domain. In case this attempt to disclaim copyright and place the software | ||
| # in the public domain is deemed null and void, then the software is | ||
| # Copyright (c) 2000-2011 Solar Designer and it is hereby released to the | ||
| # general public under the following terms: | ||
| # | ||
| # Redistribution and use in source and binary forms, with or without | ||
| # modification, are permitted. | ||
| # | ||
| # There's ABSOLUTELY NO WARRANTY, express or implied. | ||
| # | ||
| # See crypt_blowfish.c for more information. | ||
| # | ||
| CC = gcc | ||
| AS = $(CC) | ||
| LD = $(CC) | ||
| RM = rm -f | ||
| CFLAGS = -W -Wall -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wundef -Wpointer-arith -O2 -fomit-frame-pointer -funroll-loops | ||
| ASFLAGS = -c | ||
| LDFLAGS = -s | ||
| BLOWFISH_OBJS = \ | ||
| crypt_blowfish.o x86.o | ||
| CRYPT_OBJS = \ | ||
| $(BLOWFISH_OBJS) crypt_gensalt.o wrapper.o | ||
| TEST_OBJS = \ | ||
| $(BLOWFISH_OBJS) crypt_gensalt.o crypt_test.o | ||
| TEST_THREADS_OBJS = \ | ||
| $(BLOWFISH_OBJS) crypt_gensalt.o crypt_test_threads.o | ||
| EXTRA_MANS = \ | ||
| crypt_r.3 crypt_rn.3 crypt_ra.3 \ | ||
| crypt_gensalt.3 crypt_gensalt_rn.3 crypt_gensalt_ra.3 | ||
| all: $(CRYPT_OBJS) man | ||
| check: crypt_test | ||
| ./crypt_test | ||
| crypt_test: $(TEST_OBJS) | ||
| $(LD) $(LDFLAGS) $(TEST_OBJS) -o $@ | ||
| crypt_test.o: wrapper.c ow-crypt.h crypt_blowfish.h crypt_gensalt.h | ||
| $(CC) -c $(CFLAGS) wrapper.c -DTEST -o $@ | ||
| check_threads: crypt_test_threads | ||
| ./crypt_test_threads | ||
| crypt_test_threads: $(TEST_THREADS_OBJS) | ||
| $(LD) $(LDFLAGS) $(TEST_THREADS_OBJS) -lpthread -o $@ | ||
| crypt_test_threads.o: wrapper.c ow-crypt.h crypt_blowfish.h crypt_gensalt.h | ||
| $(CC) -c $(CFLAGS) wrapper.c -DTEST -DTEST_THREADS=4 -o $@ | ||
| man: $(EXTRA_MANS) | ||
| $(EXTRA_MANS): | ||
| echo '.so man3/crypt.3' > $@ | ||
| crypt_blowfish.o: crypt_blowfish.h | ||
| crypt_gensalt.o: crypt_gensalt.h | ||
| wrapper.o: crypt.h ow-crypt.h crypt_blowfish.h crypt_gensalt.h | ||
| .c.o: | ||
| $(CC) -c $(CFLAGS) $*.c | ||
| .S.o: | ||
| $(AS) $(ASFLAGS) $*.S | ||
| clean: | ||
| $(RM) crypt_test crypt_test_threads *.o $(EXTRA_MANS) core |
| /* | ||
| * Written by Solar Designer <solar at openwall.com> in 2000-2011. | ||
| * No copyright is claimed, and the software is hereby placed in the public | ||
| * domain. In case this attempt to disclaim copyright and place the software | ||
| * in the public domain is deemed null and void, then the software is | ||
| * Copyright (c) 2000-2011 Solar Designer and it is hereby released to the | ||
| * general public under the following terms: | ||
| * | ||
| * Redistribution and use in source and binary forms, with or without | ||
| * modification, are permitted. | ||
| * | ||
| * There's ABSOLUTELY NO WARRANTY, express or implied. | ||
| * | ||
| * See crypt_blowfish.c for more information. | ||
| */ | ||
| #ifndef _OW_CRYPT_H | ||
| #define _OW_CRYPT_H | ||
| #ifndef __GNUC__ | ||
| #undef __const | ||
| #define __const const | ||
| #endif | ||
| #ifndef __SKIP_GNU | ||
| extern char *crypt(__const char *key, __const char *setting); | ||
| extern char *crypt_r(__const char *key, __const char *setting, void *data); | ||
| #endif | ||
| #ifndef __SKIP_OW | ||
| extern char *crypt_rn(__const char *key, __const char *setting, | ||
| void *data, int size); | ||
| extern char *crypt_ra(__const char *key, __const char *setting, | ||
| void **data, int *size); | ||
| extern char *crypt_gensalt(__const char *prefix, unsigned long count, | ||
| __const char *input, int size); | ||
| extern char *crypt_gensalt_rn(__const char *prefix, unsigned long count, | ||
| __const char *input, int size, char *output, int output_size); | ||
| extern char *crypt_gensalt_ra(__const char *prefix, unsigned long count, | ||
| __const char *input, int size); | ||
| #endif | ||
| #endif |
Sorry, the diff of this file is not supported yet
| This is an implementation of a password hashing method, provided via the | ||
| crypt(3) and a reentrant interface. It is fully compatible with | ||
| OpenBSD's bcrypt.c for prefix "$2b$", originally by Niels Provos and | ||
| David Mazieres. (Please refer to the included crypt(3) man page for | ||
| information on minor compatibility issues for other bcrypt prefixes.) | ||
| I've placed this code in the public domain, with fallback to a | ||
| permissive license. Please see the comment in crypt_blowfish.c for | ||
| more information. | ||
| You can use the provided routines in your own packages, or link them | ||
| into a C library. I've provided hooks for linking into GNU libc, but | ||
| it shouldn't be too hard to get this into another C library. Note | ||
| that simply adding this code into your libc is probably not enough to | ||
| make your system use the new password hashing algorithm. Changes to | ||
| passwd(1), PAM modules, or whatever else your system uses will likely | ||
| be needed as well. These are not a part of this package, but see | ||
| LINKS for a pointer to our tcb suite. | ||
| Instructions on using the routines in one of the two common ways are | ||
| given below. It is recommended that you test the routines on your | ||
| system before you start. Type "make check" or "make check_threads" | ||
| (if you have the POSIX threads library), then "make clean". | ||
| 1. Using the routines in your programs. | ||
| The available interfaces are in ow-crypt.h, and this is the file you | ||
| should include. You won't need crypt.h. When linking, add all of the | ||
| C files and x86.S (you can compile and link it even on a non-x86, it | ||
| will produce no code in this case). | ||
| 2. Building the routines into GNU C library. | ||
| For versions 2.13 and 2.14 (and likely other nearby ones), extract the | ||
| library sources as usual. Apply the patch for glibc 2.14 provided in | ||
| this package. Enter crypt/ and rename crypt.h to gnu-crypt.h within | ||
| that directory. Copy the C sources, header, and assembly (x86.S) files | ||
| from this package in there as well (but be sure you don't overwrite the | ||
| Makefile). Configure, build, and install the library as usual. | ||
| For versions 2.2 to 2.3.6 (and likely also for some newer ones), | ||
| extract the library sources and maybe its optional add-ons as usual. | ||
| Apply the patch for glibc 2.3.6 provided in this package. Enter | ||
| crypt/ and rename crypt.h to gnu-crypt.h within that directory. Copy | ||
| the C sources, header, and assembly (x86.S) files from this package in | ||
| there as well (but be sure you don't overwrite the Makefile). | ||
| Configure, build, and install the library as usual. | ||
| For versions 2.1 to 2.1.3, extract the library sources and the crypt | ||
| and linuxthreads add-ons as usual. Apply the patch for glibc 2.1.3 | ||
| provided in this package. Enter crypt/sysdeps/unix/, and rename | ||
| crypt.h to gnu-crypt.h within that directory. Copy C sources, header, | ||
| and assembly (x86.S) files from this package in there as well (but be | ||
| sure you don't overwrite the Makefile). Configure, build, and install | ||
| the library as usual. | ||
| Programs that want to use the provided interfaces will need to include | ||
| crypt.h (but not ow-crypt.h directly). By default, prototypes for the | ||
| new routines aren't defined (but the extra functionality of crypt(3) | ||
| is indeed available). You need to define _OW_SOURCE to obtain the new | ||
| routines as well. | ||
| -- | ||
| Solar Designer <solar at openwall.com> | ||
| $Owl: Owl/packages/glibc/crypt_blowfish/README,v 1.10 2014/07/07 15:19:04 solar Exp $ |
Sorry, the diff of this file is not supported yet
| /* | ||
| * Written by Solar Designer <solar at openwall.com> in 1998-2010. | ||
| * No copyright is claimed, and the software is hereby placed in the public | ||
| * domain. In case this attempt to disclaim copyright and place the software | ||
| * in the public domain is deemed null and void, then the software is | ||
| * Copyright (c) 1998-2010 Solar Designer and it is hereby released to the | ||
| * general public under the following terms: | ||
| * | ||
| * Redistribution and use in source and binary forms, with or without | ||
| * modification, are permitted. | ||
| * | ||
| * There's ABSOLUTELY NO WARRANTY, express or implied. | ||
| * | ||
| * See crypt_blowfish.c for more information. | ||
| */ | ||
| #ifdef __i386__ | ||
| #if defined(__OpenBSD__) && !defined(__ELF__) | ||
| #define UNDERSCORES | ||
| #define ALIGN_LOG | ||
| #endif | ||
| #if defined(__CYGWIN32__) || defined(__MINGW32__) | ||
| #define UNDERSCORES | ||
| #endif | ||
| #ifdef __DJGPP__ | ||
| #define UNDERSCORES | ||
| #define ALIGN_LOG | ||
| #endif | ||
| #ifdef UNDERSCORES | ||
| #define _BF_body_r __BF_body_r | ||
| #endif | ||
| #ifdef ALIGN_LOG | ||
| #define DO_ALIGN(log) .align (log) | ||
| #elif defined(DUMBAS) | ||
| #define DO_ALIGN(log) .align 1 << log | ||
| #else | ||
| #define DO_ALIGN(log) .align (1 << (log)) | ||
| #endif | ||
| #define BF_FRAME 0x200 | ||
| #define ctx %esp | ||
| #define BF_ptr (ctx) | ||
| #define S(N, r) N+BF_FRAME(ctx,r,4) | ||
| #ifdef DUMBAS | ||
| #define P(N) 0x1000+N+N+N+N+BF_FRAME(ctx) | ||
| #else | ||
| #define P(N) 0x1000+4*N+BF_FRAME(ctx) | ||
| #endif | ||
| /* | ||
| * This version of the assembly code is optimized primarily for the original | ||
| * Intel Pentium but is also careful to avoid partial register stalls on the | ||
| * Pentium Pro family of processors (tested up to Pentium III Coppermine). | ||
| * | ||
| * It is possible to do 15% faster on the Pentium Pro family and probably on | ||
| * many non-Intel x86 processors, but, unfortunately, that would make things | ||
| * twice slower for the original Pentium. | ||
| * | ||
| * An additional 2% speedup may be achieved with non-reentrant code. | ||
| */ | ||
| #define L %esi | ||
| #define R %edi | ||
| #define tmp1 %eax | ||
| #define tmp1_lo %al | ||
| #define tmp2 %ecx | ||
| #define tmp2_hi %ch | ||
| #define tmp3 %edx | ||
| #define tmp3_lo %dl | ||
| #define tmp4 %ebx | ||
| #define tmp4_hi %bh | ||
| #define tmp5 %ebp | ||
| .text | ||
| #define BF_ROUND(L, R, N) \ | ||
| xorl L,tmp2; \ | ||
| xorl tmp1,tmp1; \ | ||
| movl tmp2,L; \ | ||
| shrl $16,tmp2; \ | ||
| movl L,tmp4; \ | ||
| movb tmp2_hi,tmp1_lo; \ | ||
| andl $0xFF,tmp2; \ | ||
| movb tmp4_hi,tmp3_lo; \ | ||
| andl $0xFF,tmp4; \ | ||
| movl S(0,tmp1),tmp1; \ | ||
| movl S(0x400,tmp2),tmp5; \ | ||
| addl tmp5,tmp1; \ | ||
| movl S(0x800,tmp3),tmp5; \ | ||
| xorl tmp5,tmp1; \ | ||
| movl S(0xC00,tmp4),tmp5; \ | ||
| addl tmp1,tmp5; \ | ||
| movl 4+P(N),tmp2; \ | ||
| xorl tmp5,R | ||
| #define BF_ENCRYPT_START \ | ||
| BF_ROUND(L, R, 0); \ | ||
| BF_ROUND(R, L, 1); \ | ||
| BF_ROUND(L, R, 2); \ | ||
| BF_ROUND(R, L, 3); \ | ||
| BF_ROUND(L, R, 4); \ | ||
| BF_ROUND(R, L, 5); \ | ||
| BF_ROUND(L, R, 6); \ | ||
| BF_ROUND(R, L, 7); \ | ||
| BF_ROUND(L, R, 8); \ | ||
| BF_ROUND(R, L, 9); \ | ||
| BF_ROUND(L, R, 10); \ | ||
| BF_ROUND(R, L, 11); \ | ||
| BF_ROUND(L, R, 12); \ | ||
| BF_ROUND(R, L, 13); \ | ||
| BF_ROUND(L, R, 14); \ | ||
| BF_ROUND(R, L, 15); \ | ||
| movl BF_ptr,tmp5; \ | ||
| xorl L,tmp2; \ | ||
| movl P(17),L | ||
| #define BF_ENCRYPT_END \ | ||
| xorl R,L; \ | ||
| movl tmp2,R | ||
| DO_ALIGN(5) | ||
| .globl _BF_body_r | ||
| _BF_body_r: | ||
| movl 4(%esp),%eax | ||
| pushl %ebp | ||
| pushl %ebx | ||
| pushl %esi | ||
| pushl %edi | ||
| subl $BF_FRAME-8,%eax | ||
| xorl L,L | ||
| cmpl %esp,%eax | ||
| ja BF_die | ||
| xchgl %eax,%esp | ||
| xorl R,R | ||
| pushl %eax | ||
| leal 0x1000+BF_FRAME-4(ctx),%eax | ||
| movl 0x1000+BF_FRAME-4(ctx),tmp2 | ||
| pushl %eax | ||
| xorl tmp3,tmp3 | ||
| BF_loop_P: | ||
| BF_ENCRYPT_START | ||
| addl $8,tmp5 | ||
| BF_ENCRYPT_END | ||
| leal 0x1000+18*4+BF_FRAME(ctx),tmp1 | ||
| movl tmp5,BF_ptr | ||
| cmpl tmp5,tmp1 | ||
| movl L,-8(tmp5) | ||
| movl R,-4(tmp5) | ||
| movl P(0),tmp2 | ||
| ja BF_loop_P | ||
| leal BF_FRAME(ctx),tmp5 | ||
| xorl tmp3,tmp3 | ||
| movl tmp5,BF_ptr | ||
| BF_loop_S: | ||
| BF_ENCRYPT_START | ||
| BF_ENCRYPT_END | ||
| movl P(0),tmp2 | ||
| movl L,(tmp5) | ||
| movl R,4(tmp5) | ||
| BF_ENCRYPT_START | ||
| BF_ENCRYPT_END | ||
| movl P(0),tmp2 | ||
| movl L,8(tmp5) | ||
| movl R,12(tmp5) | ||
| BF_ENCRYPT_START | ||
| BF_ENCRYPT_END | ||
| movl P(0),tmp2 | ||
| movl L,16(tmp5) | ||
| movl R,20(tmp5) | ||
| BF_ENCRYPT_START | ||
| addl $32,tmp5 | ||
| BF_ENCRYPT_END | ||
| leal 0x1000+BF_FRAME(ctx),tmp1 | ||
| movl tmp5,BF_ptr | ||
| cmpl tmp5,tmp1 | ||
| movl P(0),tmp2 | ||
| movl L,-8(tmp5) | ||
| movl R,-4(tmp5) | ||
| ja BF_loop_S | ||
| movl 4(%esp),%esp | ||
| popl %edi | ||
| popl %esi | ||
| popl %ebx | ||
| popl %ebp | ||
| ret | ||
| BF_die: | ||
| /* Oops, need to re-compile with a larger BF_FRAME. */ | ||
| hlt | ||
| jmp BF_die | ||
| #endif | ||
| #if defined(__ELF__) && defined(__linux__) | ||
| .section .note.GNU-stack,"",@progbits | ||
| #endif |
+1
-1
| Metadata-Version: 1.1 | ||
| Name: cryptacular | ||
| Version: 1.6.0 | ||
| Version: 1.6.1 |
+2
-2
@@ -7,3 +7,3 @@ [build-system] | ||
| name = "cryptacular" | ||
| version = "1.6.0" | ||
| version = "1.6.1" | ||
| description = "A password hashing framework with bcrypt and pbkdf2." | ||
@@ -24,3 +24,3 @@ classifiers = ["Development Status :: 5 - Production/Stable", | ||
| author_email = "dholth@fastmail.fm" | ||
| url = "http://bitbucket.org/dholth/cryptacular/" | ||
| url = "https://github.com/dholth/cryptacular/" | ||
| license = "MIT" | ||
@@ -27,0 +27,0 @@ install_requires = ["pbkdf2", "setuptools"] |
Sorry, the diff of this file is not supported yet
Alert delta unavailable
Currently unable to show alert delta for PyPI packages.
250882
188.74%33
83.33%