Commit 70532b7d authored by Andy Polyakov's avatar Andy Polyakov
Browse files

Move DES_SPtrans to where it really belongs, dec_enc to be specific.

parent a4d729f3
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -156,7 +156,7 @@ des_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
des_enc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
des_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
des_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
des_enc.o: des_enc.c des_locl.h ncbc_enc.c
des_enc.o: des_enc.c des_locl.h ncbc_enc.c spr.h
des_old.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
des_old.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
des_old.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
@@ -182,7 +182,6 @@ ecb_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
ecb_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
ecb_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
ecb_enc.o: ../../include/openssl/ui_compat.h des_locl.h des_ver.h ecb_enc.c
ecb_enc.o: spr.h
ede_cbcm_enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
ede_cbcm_enc.o: ../../include/openssl/e_os2.h
ede_cbcm_enc.o: ../../include/openssl/opensslconf.h
+141 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ $R="esi";
&DES_encrypt3("DES_decrypt3",0);
&cbc("DES_ncbc_encrypt","DES_encrypt1","DES_encrypt1",0,4,5,3,5,-1);
&cbc("DES_ede3_cbc_encrypt","DES_encrypt3","DES_decrypt3",0,6,7,3,4,5);
&DES_SPtrans();

&asm_finish();

@@ -249,3 +250,143 @@ sub FP_new
	&rotr($tt	, 4);
	}

sub DES_SPtrans
	{
	&public_label("DES_SPtrans");
	&set_label("DES_SPtrans",64);
	&data_word(0x02080800, 0x00080000, 0x02000002, 0x02080802);
	&data_word(0x02000000, 0x00080802, 0x00080002, 0x02000002);
	&data_word(0x00080802, 0x02080800, 0x02080000, 0x00000802);
	&data_word(0x02000802, 0x02000000, 0x00000000, 0x00080002);
	&data_word(0x00080000, 0x00000002, 0x02000800, 0x00080800);
	&data_word(0x02080802, 0x02080000, 0x00000802, 0x02000800);
	&data_word(0x00000002, 0x00000800, 0x00080800, 0x02080002);
	&data_word(0x00000800, 0x02000802, 0x02080002, 0x00000000);
	&data_word(0x00000000, 0x02080802, 0x02000800, 0x00080002);
	&data_word(0x02080800, 0x00080000, 0x00000802, 0x02000800);
	&data_word(0x02080002, 0x00000800, 0x00080800, 0x02000002);
	&data_word(0x00080802, 0x00000002, 0x02000002, 0x02080000);
	&data_word(0x02080802, 0x00080800, 0x02080000, 0x02000802);
	&data_word(0x02000000, 0x00000802, 0x00080002, 0x00000000);
	&data_word(0x00080000, 0x02000000, 0x02000802, 0x02080800);
	&data_word(0x00000002, 0x02080002, 0x00000800, 0x00080802);
	# nibble 1
	&data_word(0x40108010, 0x00000000, 0x00108000, 0x40100000);
	&data_word(0x40000010, 0x00008010, 0x40008000, 0x00108000);
	&data_word(0x00008000, 0x40100010, 0x00000010, 0x40008000);
	&data_word(0x00100010, 0x40108000, 0x40100000, 0x00000010);
	&data_word(0x00100000, 0x40008010, 0x40100010, 0x00008000);
	&data_word(0x00108010, 0x40000000, 0x00000000, 0x00100010);
	&data_word(0x40008010, 0x00108010, 0x40108000, 0x40000010);
	&data_word(0x40000000, 0x00100000, 0x00008010, 0x40108010);
	&data_word(0x00100010, 0x40108000, 0x40008000, 0x00108010);
	&data_word(0x40108010, 0x00100010, 0x40000010, 0x00000000);
	&data_word(0x40000000, 0x00008010, 0x00100000, 0x40100010);
	&data_word(0x00008000, 0x40000000, 0x00108010, 0x40008010);
	&data_word(0x40108000, 0x00008000, 0x00000000, 0x40000010);
	&data_word(0x00000010, 0x40108010, 0x00108000, 0x40100000);
	&data_word(0x40100010, 0x00100000, 0x00008010, 0x40008000);
	&data_word(0x40008010, 0x00000010, 0x40100000, 0x00108000);
	# nibble 2
	&data_word(0x04000001, 0x04040100, 0x00000100, 0x04000101);
	&data_word(0x00040001, 0x04000000, 0x04000101, 0x00040100);
	&data_word(0x04000100, 0x00040000, 0x04040000, 0x00000001);
	&data_word(0x04040101, 0x00000101, 0x00000001, 0x04040001);
	&data_word(0x00000000, 0x00040001, 0x04040100, 0x00000100);
	&data_word(0x00000101, 0x04040101, 0x00040000, 0x04000001);
	&data_word(0x04040001, 0x04000100, 0x00040101, 0x04040000);
	&data_word(0x00040100, 0x00000000, 0x04000000, 0x00040101);
	&data_word(0x04040100, 0x00000100, 0x00000001, 0x00040000);
	&data_word(0x00000101, 0x00040001, 0x04040000, 0x04000101);
	&data_word(0x00000000, 0x04040100, 0x00040100, 0x04040001);
	&data_word(0x00040001, 0x04000000, 0x04040101, 0x00000001);
	&data_word(0x00040101, 0x04000001, 0x04000000, 0x04040101);
	&data_word(0x00040000, 0x04000100, 0x04000101, 0x00040100);
	&data_word(0x04000100, 0x00000000, 0x04040001, 0x00000101);
	&data_word(0x04000001, 0x00040101, 0x00000100, 0x04040000);
	# nibble 3
	&data_word(0x00401008, 0x10001000, 0x00000008, 0x10401008);
	&data_word(0x00000000, 0x10400000, 0x10001008, 0x00400008);
	&data_word(0x10401000, 0x10000008, 0x10000000, 0x00001008);
	&data_word(0x10000008, 0x00401008, 0x00400000, 0x10000000);
	&data_word(0x10400008, 0x00401000, 0x00001000, 0x00000008);
	&data_word(0x00401000, 0x10001008, 0x10400000, 0x00001000);
	&data_word(0x00001008, 0x00000000, 0x00400008, 0x10401000);
	&data_word(0x10001000, 0x10400008, 0x10401008, 0x00400000);
	&data_word(0x10400008, 0x00001008, 0x00400000, 0x10000008);
	&data_word(0x00401000, 0x10001000, 0x00000008, 0x10400000);
	&data_word(0x10001008, 0x00000000, 0x00001000, 0x00400008);
	&data_word(0x00000000, 0x10400008, 0x10401000, 0x00001000);
	&data_word(0x10000000, 0x10401008, 0x00401008, 0x00400000);
	&data_word(0x10401008, 0x00000008, 0x10001000, 0x00401008);
	&data_word(0x00400008, 0x00401000, 0x10400000, 0x10001008);
	&data_word(0x00001008, 0x10000000, 0x10000008, 0x10401000);
	# nibble 4
	&data_word(0x08000000, 0x00010000, 0x00000400, 0x08010420);
	&data_word(0x08010020, 0x08000400, 0x00010420, 0x08010000);
	&data_word(0x00010000, 0x00000020, 0x08000020, 0x00010400);
	&data_word(0x08000420, 0x08010020, 0x08010400, 0x00000000);
	&data_word(0x00010400, 0x08000000, 0x00010020, 0x00000420);
	&data_word(0x08000400, 0x00010420, 0x00000000, 0x08000020);
	&data_word(0x00000020, 0x08000420, 0x08010420, 0x00010020);
	&data_word(0x08010000, 0x00000400, 0x00000420, 0x08010400);
	&data_word(0x08010400, 0x08000420, 0x00010020, 0x08010000);
	&data_word(0x00010000, 0x00000020, 0x08000020, 0x08000400);
	&data_word(0x08000000, 0x00010400, 0x08010420, 0x00000000);
	&data_word(0x00010420, 0x08000000, 0x00000400, 0x00010020);
	&data_word(0x08000420, 0x00000400, 0x00000000, 0x08010420);
	&data_word(0x08010020, 0x08010400, 0x00000420, 0x00010000);
	&data_word(0x00010400, 0x08010020, 0x08000400, 0x00000420);
	&data_word(0x00000020, 0x00010420, 0x08010000, 0x08000020);
	# nibble 5
	&data_word(0x80000040, 0x00200040, 0x00000000, 0x80202000);
	&data_word(0x00200040, 0x00002000, 0x80002040, 0x00200000);
	&data_word(0x00002040, 0x80202040, 0x00202000, 0x80000000);
	&data_word(0x80002000, 0x80000040, 0x80200000, 0x00202040);
	&data_word(0x00200000, 0x80002040, 0x80200040, 0x00000000);
	&data_word(0x00002000, 0x00000040, 0x80202000, 0x80200040);
	&data_word(0x80202040, 0x80200000, 0x80000000, 0x00002040);
	&data_word(0x00000040, 0x00202000, 0x00202040, 0x80002000);
	&data_word(0x00002040, 0x80000000, 0x80002000, 0x00202040);
	&data_word(0x80202000, 0x00200040, 0x00000000, 0x80002000);
	&data_word(0x80000000, 0x00002000, 0x80200040, 0x00200000);
	&data_word(0x00200040, 0x80202040, 0x00202000, 0x00000040);
	&data_word(0x80202040, 0x00202000, 0x00200000, 0x80002040);
	&data_word(0x80000040, 0x80200000, 0x00202040, 0x00000000);
	&data_word(0x00002000, 0x80000040, 0x80002040, 0x80202000);
	&data_word(0x80200000, 0x00002040, 0x00000040, 0x80200040);
	# nibble 6
	&data_word(0x00004000, 0x00000200, 0x01000200, 0x01000004);
	&data_word(0x01004204, 0x00004004, 0x00004200, 0x00000000);
	&data_word(0x01000000, 0x01000204, 0x00000204, 0x01004000);
	&data_word(0x00000004, 0x01004200, 0x01004000, 0x00000204);
	&data_word(0x01000204, 0x00004000, 0x00004004, 0x01004204);
	&data_word(0x00000000, 0x01000200, 0x01000004, 0x00004200);
	&data_word(0x01004004, 0x00004204, 0x01004200, 0x00000004);
	&data_word(0x00004204, 0x01004004, 0x00000200, 0x01000000);
	&data_word(0x00004204, 0x01004000, 0x01004004, 0x00000204);
	&data_word(0x00004000, 0x00000200, 0x01000000, 0x01004004);
	&data_word(0x01000204, 0x00004204, 0x00004200, 0x00000000);
	&data_word(0x00000200, 0x01000004, 0x00000004, 0x01000200);
	&data_word(0x00000000, 0x01000204, 0x01000200, 0x00004200);
	&data_word(0x00000204, 0x00004000, 0x01004204, 0x01000000);
	&data_word(0x01004200, 0x00000004, 0x00004004, 0x01004204);
	&data_word(0x01000004, 0x01004200, 0x01004000, 0x00004004);
	# nibble 7
	&data_word(0x20800080, 0x20820000, 0x00020080, 0x00000000);
	&data_word(0x20020000, 0x00800080, 0x20800000, 0x20820080);
	&data_word(0x00000080, 0x20000000, 0x00820000, 0x00020080);
	&data_word(0x00820080, 0x20020080, 0x20000080, 0x20800000);
	&data_word(0x00020000, 0x00820080, 0x00800080, 0x20020000);
	&data_word(0x20820080, 0x20000080, 0x00000000, 0x00820000);
	&data_word(0x20000000, 0x00800000, 0x20020080, 0x20800080);
	&data_word(0x00800000, 0x00020000, 0x20820000, 0x00000080);
	&data_word(0x00800000, 0x00020000, 0x20000080, 0x20820080);
	&data_word(0x00020080, 0x20000000, 0x00000000, 0x00820000);
	&data_word(0x20800080, 0x20020080, 0x20020000, 0x00800080);
	&data_word(0x20820000, 0x00000080, 0x00800080, 0x20020000);
	&data_word(0x20820080, 0x00800000, 0x20800000, 0x20000080);
	&data_word(0x00820000, 0x00020080, 0x20020080, 0x20800000);
	&data_word(0x00000080, 0x20820000, 0x00820080, 0x00000000);
	&data_word(0x20000000, 0x20800080, 0x00020000, 0x00820080);
	}
+204 −90
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@
!

.ident "des_enc.m4 2.1"
.file  "des_enc-sparc.S"

#if defined(__SUNPRO_C) && defined(__sparcv9)
# define ABI64  /* They've said -xarch=v9 at command line */
@@ -1424,63 +1425,6 @@ DES_decrypt3:
.DES_decrypt3.end:
	.size	 DES_decrypt3,.DES_decrypt3.end-DES_decrypt3

	.align	256
	.type	 .des_and,#object
	.size	 .des_and,284

.des_and:

! This table is used for AND 0xFC when it is known that register
! bits 8-31 are zero. Makes it possible to do three arithmetic
! operations in one cycle.

	.byte  0, 0, 0, 0, 4, 4, 4, 4
	.byte  8, 8, 8, 8, 12, 12, 12, 12
	.byte  16, 16, 16, 16, 20, 20, 20, 20
	.byte  24, 24, 24, 24, 28, 28, 28, 28
	.byte  32, 32, 32, 32, 36, 36, 36, 36
	.byte  40, 40, 40, 40, 44, 44, 44, 44
	.byte  48, 48, 48, 48, 52, 52, 52, 52
	.byte  56, 56, 56, 56, 60, 60, 60, 60
	.byte  64, 64, 64, 64, 68, 68, 68, 68
	.byte  72, 72, 72, 72, 76, 76, 76, 76
	.byte  80, 80, 80, 80, 84, 84, 84, 84
	.byte  88, 88, 88, 88, 92, 92, 92, 92
	.byte  96, 96, 96, 96, 100, 100, 100, 100
	.byte  104, 104, 104, 104, 108, 108, 108, 108
	.byte  112, 112, 112, 112, 116, 116, 116, 116
	.byte  120, 120, 120, 120, 124, 124, 124, 124
	.byte  128, 128, 128, 128, 132, 132, 132, 132
	.byte  136, 136, 136, 136, 140, 140, 140, 140
	.byte  144, 144, 144, 144, 148, 148, 148, 148
	.byte  152, 152, 152, 152, 156, 156, 156, 156
	.byte  160, 160, 160, 160, 164, 164, 164, 164
	.byte  168, 168, 168, 168, 172, 172, 172, 172
	.byte  176, 176, 176, 176, 180, 180, 180, 180
	.byte  184, 184, 184, 184, 188, 188, 188, 188
	.byte  192, 192, 192, 192, 196, 196, 196, 196
	.byte  200, 200, 200, 200, 204, 204, 204, 204
	.byte  208, 208, 208, 208, 212, 212, 212, 212
	.byte  216, 216, 216, 216, 220, 220, 220, 220
	.byte  224, 224, 224, 224, 228, 228, 228, 228
	.byte  232, 232, 232, 232, 236, 236, 236, 236
	.byte  240, 240, 240, 240, 244, 244, 244, 244
	.byte  248, 248, 248, 248, 252, 252, 252, 252

	! 5 numbers for initil/final permutation

	.word   0x0f0f0f0f                ! offset 256
	.word	0x0000ffff                ! 260
	.word	0x33333333                ! 264
	.word	0x00ff00ff                ! 268
	.word	0x55555555                ! 272

	.word	0                         ! 276
	.word	LOOPS                     ! 280
	.word	0x0000FC00                ! 284
.PIC.DES_SPtrans:
	.word	%r_disp32(DES_SPtrans)

! input:	out0	offset between .PIC.me.up and caller
! output:	out0	pointer to .PIC.me.up
!		out2	pointer to .des_and
@@ -1488,40 +1432,11 @@ DES_decrypt3:
	.align	32
.PIC.me.up:
	add	out0,%o7,out0			! pointer to .PIC.me.up
#if 1
	ld	[out0+(.PIC.DES_SPtrans-.PIC.me.up)],global1
	add	global1,(.PIC.DES_SPtrans-.PIC.me.up),global1
	add	global1,out0,global1
#else
# ifdef OPENSSL_PIC
	! In case anybody wonders why this code is same for both ABI.
	! To start with it is not. Do note LDPTR below. But of course
	! you must be wondering why the rest of it does not contain
	! things like %hh, %hm and %lm. Well, those are needed only
	! if OpenSSL library *itself* will become larger than 4GB,
	! which is not going to happen any time soon. 
	sethi	%hi(DES_SPtrans),global1
	or	global1,%lo(DES_SPtrans),global1
	sethi	%hi(_GLOBAL_OFFSET_TABLE_-(.PIC.me.up-.)),out2
	add	global1,out0,global1
	add	out2,%lo(_GLOBAL_OFFSET_TABLE_-(.PIC.me.up-.)),out2
	LDPTR	[out2+global1],global1
# elif 0
	setn	DES_SPtrans,out2,global1	! synthetic instruction !
# elif defined(ABI64)
	sethi	%hh(DES_SPtrans),out2
	or	out2,%hm(DES_SPtrans),out2
	sethi	%lm(DES_SPtrans),global1
	or	global1,%lo(DES_SPtrans),global1
	sllx	out2,32,out2
	or	out2,global1,global1
# else
	sethi	%hi(DES_SPtrans),global1
	or	global1,%lo(DES_SPtrans),global1
# endif
#endif
	sethi	%hi(.des_and-.PIC.me.up),out2
	or	out2,%lo(.des_and-.PIC.me.up),out2
	add	out0,out2,out2
	retl
	add	out0,.des_and-.PIC.me.up,out2
	add	out2,.PIC.DES_SPtrans-.des_and,global1

! void DES_ncbc_encrypt(input, output, length, schedule, ivec, enc)
! *****************************************************************
@@ -1978,3 +1893,202 @@ DES_ede3_cbc_encrypt:

.DES_ede3_cbc_encrypt.end:
	.size	 DES_ede3_cbc_encrypt,.DES_ede3_cbc_encrypt.end-DES_ede3_cbc_encrypt

	.align	256
	.type	 .des_and,#object
	.size	 .des_and,284

.des_and:

! This table is used for AND 0xFC when it is known that register
! bits 8-31 are zero. Makes it possible to do three arithmetic
! operations in one cycle.

	.byte  0, 0, 0, 0, 4, 4, 4, 4
	.byte  8, 8, 8, 8, 12, 12, 12, 12
	.byte  16, 16, 16, 16, 20, 20, 20, 20
	.byte  24, 24, 24, 24, 28, 28, 28, 28
	.byte  32, 32, 32, 32, 36, 36, 36, 36
	.byte  40, 40, 40, 40, 44, 44, 44, 44
	.byte  48, 48, 48, 48, 52, 52, 52, 52
	.byte  56, 56, 56, 56, 60, 60, 60, 60
	.byte  64, 64, 64, 64, 68, 68, 68, 68
	.byte  72, 72, 72, 72, 76, 76, 76, 76
	.byte  80, 80, 80, 80, 84, 84, 84, 84
	.byte  88, 88, 88, 88, 92, 92, 92, 92
	.byte  96, 96, 96, 96, 100, 100, 100, 100
	.byte  104, 104, 104, 104, 108, 108, 108, 108
	.byte  112, 112, 112, 112, 116, 116, 116, 116
	.byte  120, 120, 120, 120, 124, 124, 124, 124
	.byte  128, 128, 128, 128, 132, 132, 132, 132
	.byte  136, 136, 136, 136, 140, 140, 140, 140
	.byte  144, 144, 144, 144, 148, 148, 148, 148
	.byte  152, 152, 152, 152, 156, 156, 156, 156
	.byte  160, 160, 160, 160, 164, 164, 164, 164
	.byte  168, 168, 168, 168, 172, 172, 172, 172
	.byte  176, 176, 176, 176, 180, 180, 180, 180
	.byte  184, 184, 184, 184, 188, 188, 188, 188
	.byte  192, 192, 192, 192, 196, 196, 196, 196
	.byte  200, 200, 200, 200, 204, 204, 204, 204
	.byte  208, 208, 208, 208, 212, 212, 212, 212
	.byte  216, 216, 216, 216, 220, 220, 220, 220
	.byte  224, 224, 224, 224, 228, 228, 228, 228
	.byte  232, 232, 232, 232, 236, 236, 236, 236
	.byte  240, 240, 240, 240, 244, 244, 244, 244
	.byte  248, 248, 248, 248, 252, 252, 252, 252

	! 5 numbers for initil/final permutation

	.word   0x0f0f0f0f                ! offset 256
	.word	0x0000ffff                ! 260
	.word	0x33333333                ! 264
	.word	0x00ff00ff                ! 268
	.word	0x55555555                ! 272

	.word	0                         ! 276
	.word	LOOPS                     ! 280
	.word	0x0000FC00                ! 284

	.global	DES_SPtrans
	.type	DES_SPtrans,#object
	.size	DES_SPtrans,2048
.align	64
DES_SPtrans:
.PIC.DES_SPtrans:
	! nibble 0
	.word	0x02080800, 0x00080000, 0x02000002, 0x02080802
	.word	0x02000000, 0x00080802, 0x00080002, 0x02000002
	.word	0x00080802, 0x02080800, 0x02080000, 0x00000802
	.word	0x02000802, 0x02000000, 0x00000000, 0x00080002
	.word	0x00080000, 0x00000002, 0x02000800, 0x00080800
	.word	0x02080802, 0x02080000, 0x00000802, 0x02000800
	.word	0x00000002, 0x00000800, 0x00080800, 0x02080002
	.word	0x00000800, 0x02000802, 0x02080002, 0x00000000
	.word	0x00000000, 0x02080802, 0x02000800, 0x00080002
	.word	0x02080800, 0x00080000, 0x00000802, 0x02000800
	.word	0x02080002, 0x00000800, 0x00080800, 0x02000002
	.word	0x00080802, 0x00000002, 0x02000002, 0x02080000
	.word	0x02080802, 0x00080800, 0x02080000, 0x02000802
	.word	0x02000000, 0x00000802, 0x00080002, 0x00000000
	.word	0x00080000, 0x02000000, 0x02000802, 0x02080800
	.word	0x00000002, 0x02080002, 0x00000800, 0x00080802
	! nibble 1
	.word	0x40108010, 0x00000000, 0x00108000, 0x40100000
	.word	0x40000010, 0x00008010, 0x40008000, 0x00108000
	.word	0x00008000, 0x40100010, 0x00000010, 0x40008000
	.word	0x00100010, 0x40108000, 0x40100000, 0x00000010
	.word	0x00100000, 0x40008010, 0x40100010, 0x00008000
	.word	0x00108010, 0x40000000, 0x00000000, 0x00100010
	.word	0x40008010, 0x00108010, 0x40108000, 0x40000010
	.word	0x40000000, 0x00100000, 0x00008010, 0x40108010
	.word	0x00100010, 0x40108000, 0x40008000, 0x00108010
	.word	0x40108010, 0x00100010, 0x40000010, 0x00000000
	.word	0x40000000, 0x00008010, 0x00100000, 0x40100010
	.word	0x00008000, 0x40000000, 0x00108010, 0x40008010
	.word	0x40108000, 0x00008000, 0x00000000, 0x40000010
	.word	0x00000010, 0x40108010, 0x00108000, 0x40100000
	.word	0x40100010, 0x00100000, 0x00008010, 0x40008000
	.word	0x40008010, 0x00000010, 0x40100000, 0x00108000
	! nibble 2
	.word	0x04000001, 0x04040100, 0x00000100, 0x04000101
	.word	0x00040001, 0x04000000, 0x04000101, 0x00040100
	.word	0x04000100, 0x00040000, 0x04040000, 0x00000001
	.word	0x04040101, 0x00000101, 0x00000001, 0x04040001
	.word	0x00000000, 0x00040001, 0x04040100, 0x00000100
	.word	0x00000101, 0x04040101, 0x00040000, 0x04000001
	.word	0x04040001, 0x04000100, 0x00040101, 0x04040000
	.word	0x00040100, 0x00000000, 0x04000000, 0x00040101
	.word	0x04040100, 0x00000100, 0x00000001, 0x00040000
	.word	0x00000101, 0x00040001, 0x04040000, 0x04000101
	.word	0x00000000, 0x04040100, 0x00040100, 0x04040001
	.word	0x00040001, 0x04000000, 0x04040101, 0x00000001
	.word	0x00040101, 0x04000001, 0x04000000, 0x04040101
	.word	0x00040000, 0x04000100, 0x04000101, 0x00040100
	.word	0x04000100, 0x00000000, 0x04040001, 0x00000101
	.word	0x04000001, 0x00040101, 0x00000100, 0x04040000
	! nibble 3
	.word	0x00401008, 0x10001000, 0x00000008, 0x10401008
	.word	0x00000000, 0x10400000, 0x10001008, 0x00400008
	.word	0x10401000, 0x10000008, 0x10000000, 0x00001008
	.word	0x10000008, 0x00401008, 0x00400000, 0x10000000
	.word	0x10400008, 0x00401000, 0x00001000, 0x00000008
	.word	0x00401000, 0x10001008, 0x10400000, 0x00001000
	.word	0x00001008, 0x00000000, 0x00400008, 0x10401000
	.word	0x10001000, 0x10400008, 0x10401008, 0x00400000
	.word	0x10400008, 0x00001008, 0x00400000, 0x10000008
	.word	0x00401000, 0x10001000, 0x00000008, 0x10400000
	.word	0x10001008, 0x00000000, 0x00001000, 0x00400008
	.word	0x00000000, 0x10400008, 0x10401000, 0x00001000
	.word	0x10000000, 0x10401008, 0x00401008, 0x00400000
	.word	0x10401008, 0x00000008, 0x10001000, 0x00401008
	.word	0x00400008, 0x00401000, 0x10400000, 0x10001008
	.word	0x00001008, 0x10000000, 0x10000008, 0x10401000
	! nibble 4
	.word	0x08000000, 0x00010000, 0x00000400, 0x08010420
	.word	0x08010020, 0x08000400, 0x00010420, 0x08010000
	.word	0x00010000, 0x00000020, 0x08000020, 0x00010400
	.word	0x08000420, 0x08010020, 0x08010400, 0x00000000
	.word	0x00010400, 0x08000000, 0x00010020, 0x00000420
	.word	0x08000400, 0x00010420, 0x00000000, 0x08000020
	.word	0x00000020, 0x08000420, 0x08010420, 0x00010020
	.word	0x08010000, 0x00000400, 0x00000420, 0x08010400
	.word	0x08010400, 0x08000420, 0x00010020, 0x08010000
	.word	0x00010000, 0x00000020, 0x08000020, 0x08000400
	.word	0x08000000, 0x00010400, 0x08010420, 0x00000000
	.word	0x00010420, 0x08000000, 0x00000400, 0x00010020
	.word	0x08000420, 0x00000400, 0x00000000, 0x08010420
	.word	0x08010020, 0x08010400, 0x00000420, 0x00010000
	.word	0x00010400, 0x08010020, 0x08000400, 0x00000420
	.word	0x00000020, 0x00010420, 0x08010000, 0x08000020
	! nibble 5
	.word	0x80000040, 0x00200040, 0x00000000, 0x80202000
	.word	0x00200040, 0x00002000, 0x80002040, 0x00200000
	.word	0x00002040, 0x80202040, 0x00202000, 0x80000000
	.word	0x80002000, 0x80000040, 0x80200000, 0x00202040
	.word	0x00200000, 0x80002040, 0x80200040, 0x00000000
	.word	0x00002000, 0x00000040, 0x80202000, 0x80200040
	.word	0x80202040, 0x80200000, 0x80000000, 0x00002040
	.word	0x00000040, 0x00202000, 0x00202040, 0x80002000
	.word	0x00002040, 0x80000000, 0x80002000, 0x00202040
	.word	0x80202000, 0x00200040, 0x00000000, 0x80002000
	.word	0x80000000, 0x00002000, 0x80200040, 0x00200000
	.word	0x00200040, 0x80202040, 0x00202000, 0x00000040
	.word	0x80202040, 0x00202000, 0x00200000, 0x80002040
	.word	0x80000040, 0x80200000, 0x00202040, 0x00000000
	.word	0x00002000, 0x80000040, 0x80002040, 0x80202000
	.word	0x80200000, 0x00002040, 0x00000040, 0x80200040
	! nibble 6
	.word	0x00004000, 0x00000200, 0x01000200, 0x01000004
	.word	0x01004204, 0x00004004, 0x00004200, 0x00000000
	.word	0x01000000, 0x01000204, 0x00000204, 0x01004000
	.word	0x00000004, 0x01004200, 0x01004000, 0x00000204
	.word	0x01000204, 0x00004000, 0x00004004, 0x01004204
	.word	0x00000000, 0x01000200, 0x01000004, 0x00004200
	.word	0x01004004, 0x00004204, 0x01004200, 0x00000004
	.word	0x00004204, 0x01004004, 0x00000200, 0x01000000
	.word	0x00004204, 0x01004000, 0x01004004, 0x00000204
	.word	0x00004000, 0x00000200, 0x01000000, 0x01004004
	.word	0x01000204, 0x00004204, 0x00004200, 0x00000000
	.word	0x00000200, 0x01000004, 0x00000004, 0x01000200
	.word	0x00000000, 0x01000204, 0x01000200, 0x00004200
	.word	0x00000204, 0x00004000, 0x01004204, 0x01000000
	.word	0x01004200, 0x00000004, 0x00004004, 0x01004204
	.word	0x01000004, 0x01004200, 0x01004000, 0x00004004
	! nibble 7
	.word	0x20800080, 0x20820000, 0x00020080, 0x00000000
	.word	0x20020000, 0x00800080, 0x20800000, 0x20820080
	.word	0x00000080, 0x20000000, 0x00820000, 0x00020080
	.word	0x00820080, 0x20020080, 0x20000080, 0x20800000
	.word	0x00020000, 0x00820080, 0x00800080, 0x20020000
	.word	0x20820080, 0x20000080, 0x00000000, 0x00820000
	.word	0x20000000, 0x00800000, 0x20020080, 0x20800080
	.word	0x00800000, 0x00020000, 0x20820000, 0x00000080
	.word	0x00800000, 0x00020000, 0x20000080, 0x20820080
	.word	0x00020080, 0x20000000, 0x00000000, 0x00820000
	.word	0x20800080, 0x20020080, 0x20020000, 0x00800080
	.word	0x20820000, 0x00000080, 0x00800080, 0x20020000
	.word	0x20820080, 0x00800000, 0x20800000, 0x20000080
	.word	0x00820000, 0x00020080, 0x20020080, 0x20800000
	.word	0x00000080, 0x20820000, 0x00820080, 0x00000000
	.word	0x20000000, 0x20800080, 0x00020000, 0x00820080
+1 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@
 */

#include "des_locl.h"
#include "spr.h"

void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc)
	{
+0 −1
Original line number Diff line number Diff line
@@ -58,7 +58,6 @@

#include "des_locl.h"
#include "des_ver.h"
#include "spr.h"
#include <openssl/opensslv.h>
#include <openssl/bio.h>