CVS commit: src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k

2018-03-06 Thread Michael van Elst
Module Name:src
Committed By:   mlelstv
Date:   Wed Mar  7 06:55:01 UTC 2018

Modified Files:
src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k: aes-m68k.S

Log Message:
Use local ELF labels and avoid an unsupported 16bit relocation.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes-m68k.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes-m68k.S
diff -u src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes-m68k.S:1.2 src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes-m68k.S:1.3
--- src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes-m68k.S:1.2	Mon Mar  5 00:59:43 2018
+++ src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes-m68k.S	Wed Mar  7 06:55:01 2018
@@ -1,4 +1,4 @@
-|	$NetBSD: aes-m68k.S,v 1.2 2018/03/05 00:59:43 christos Exp $
+|	$NetBSD: aes-m68k.S,v 1.3 2018/03/07 06:55:01 mlelstv Exp $
 
 | Copyright (C) 2016 Tetsuya Isaki. All rights reserved.
 | Copyright (C) 2016 Y.Sugahara (moveccr). All rights reserved.
@@ -34,19 +34,20 @@
 	.global	AES_set_encrypt_key
 	.type	AES_set_encrypt_key, @function
 AES_set_encrypt_key:
+.Laes_set_encrypt_key:
 	moveml	%d2-%d7/%a2-%a6,%sp@-
 	moveal	%sp@(44+4),%a0		| userKey
 	moveal	%sp@(44+8),%a1		| bits
 	moveal	%sp@(44+12),%a3		| key
 
 	tstl	%a0
-	beq	pek_return1		| return -1 if userKey == NULL
+	beq	.Lpek_return1		| return -1 if userKey == NULL
 	tstl	%a3
-	beq	pek_return1		| return -1 if key == NULL
+	beq	.Lpek_return1		| return -1 if key == NULL
 
 	cmpaw	#128,%a1
-	bne	pek192_check		| unless bits == 128
-pek128:
+	bne	.Lpek192_check		| unless bits == 128
+.Lpek128:
 	| %d0-%d7 rk[0..7]
 	| %a0 userKey, Te0
 	| %a1  Te1
@@ -80,7 +81,7 @@ pek128:
 	lea	%pc@(rcon_byte),%a4
 	lea	%a4@(10),%a6
 
-pek128_loop:
+.Lpek128_loop:
 	| d6 consists of four Te index bytes
 	movel	%d3,%d5			| d5=rk[3] as {1,2,3,0}
 	moveb	%d5,%d7			| d7=temp
@@ -111,21 +112,21 @@ pek128_loop:
 	movel	%d3,%a5@+
 
 	cmpal	%a4,%a6
-	bne	pek128_loop		|if (++i == 10) return 0;
+	bne	.Lpek128_loop		|if (++i == 10) return 0;
 
-pek_return0:
+.Lpek_return0:
 	moveql	#0,%d0
-pek_return:
+.Lpek_return:
 	moveml	%sp@+,%d2-%d7/%a2-%a6
 	rts
 
-pek192_check:
+.Lpek192_check:
 	| %a0 userKey
 	| %a1 bits
 	| %a3 key
 	cmpaw	#192,%a1
-	bne	pek256_check		| unless bits == 192
-pek192:
+	bne	.Lpek256_check		| unless bits == 192
+.Lpek192:
 	| %a0 Te0
 	| %a1 Te1
 	| %a2 Te2
@@ -160,15 +161,15 @@ pek192:
 	moveq	#0,%d7
 	lea	%pc@(rcon_byte),%a4
 	lea	%a4@(8),%a6
-	bra	pek192_loop_start
+	bra	.Lpek192_loop_start
 
-pek192_loop:
+.Lpek192_loop:
 	eorl	%d3,%d4			| rk[10] = rk[4] ^ rk[9]
 	movel	%d4,%a5@+		| %d4 is rk[10]
 	eorl	%d4,%d5			| rk[11] = rk[5] ^ rk[10]
 	movel	%d5,%a5@		| %d5 is rk[11]
 
-pek192_loop_start:
+.Lpek192_loop_start:
 	| %d0..%d5 = rk[0..5]
 	|
 	| temp = rk[5];
@@ -206,17 +207,17 @@ pek192_loop_start:
 	movel	%d3,%a5@+		| %d3 is rk[9]
 
 	cmpal	%a4,%a6
-	bne	pek192_loop
-	bra	pek_return0
+	bne	.Lpek192_loop
+	bra	.Lpek_return0
 
 
-pek256_check:
+.Lpek256_check:
 	| %a0 userKey
 	| %a1 bits
 	| %a3 key
 	cmpaw	#256,%a1
-	bne	pek_return2		| otherwise return -2
-pek256:
+	bne	.Lpek_return2		| otherwise return -2
+.Lpek256:
 	| %a0 Te0
 	| %a1 Te1
 	| %a2 Te2
@@ -254,9 +255,9 @@ pek256:
 
 	lea	%pc@(rcon_byte),%a4
 	lea	%a4@(7),%a6
-	bra	pek256_loop_start
+	bra	.Lpek256_loop_start
 
-pek256_loop:
+.Lpek256_loop:
 	| %d0: rk[8]  -> work
 	| %d1: rk[9]  -> work
 	| %d2: rk[10]
@@ -314,7 +315,7 @@ pek256_loop:
 	moveml	%a5@(-8*4),%d0-%d1	| %d0..%d1 = rk[8..9]
 	movel	%a5@(-5*4),%d3		| %d3 = rk[11]
 
-pek256_loop_start:
+.Lpek256_loop_start:
 	| %d0: rk[0]
 	| %d1: rk[1]
 	| %d2: rk[2]
@@ -369,15 +370,15 @@ pek256_loop_start:
 	| %d7: work
 
 	cmpal	%a4,%a6
-	bne	pek256_loop
-	bra	pek_return0
+	bne	.Lpek256_loop
+	bra	.Lpek_return0
 
-pek_return1:
+.Lpek_return1:
 	moveql	#-1,%d0
-	bra	pek_return
-pek_return2:
+	bra	.Lpek_return
+.Lpek_return2:
 	moveql	#-2,%d0
-	bra	pek_return
+	bra	.Lpek_return
 	.size	AES_set_encrypt_key, .-AES_set_encrypt_key
 
 
@@ -397,9 +398,9 @@ AES_set_decrypt_key:
 	movel	%a3,%sp@-
 	movel	%a1,%sp@-
 	movel	%a0,%sp@-
-	bsr	AES_set_encrypt_key
+	bsr	.Laes_set_encrypt_key
 	lea	%sp@(12),%sp
-	bmi	pdk_return
+	bmi	.Lpdk_return
 
 	/* invert the order of the round keys: */
 	lea	%a3@(rd_key),%a5	| %a5 := [0]
@@ -407,7 +408,7 @@ AES_set_decrypt_key:
 	lslw	#4,%d4
 	lea	%a5@(%d4),%a4		| %a4 := [j]
 	moveal	%a4,%a6			| %a6 for the next loop
-pdk_invert_loop:
+.Lpdk_invert_loop:
 	movel	%a5@,%d0
 	movel	%a4@,%a5@+
 	movel	%d0,%a4@+
@@ -427,7 +428,7 @@ pdk_invert_loop:
 	lea	%a4@(-28),%a4
 
 	cmpal	%a4,%a5
-	bcs	pdk_invert_loop
+	bcs	.Lpdk_invert_loop
 
 	/*
 	 * apply the inverse MixColumn transform to all round keys but
@@ -442,7 +443,7 @@ pdk_invert_loop:
 
 	| for (i = 1; i < 

CVS commit: src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k

2018-03-04 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Mar  5 01:00:12 UTC 2018

Added Files:
src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k: crypto.inc

Log Message:
need CRYPTO_memcmp.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 \
src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/crypto.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:

Index: src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/crypto.inc
diff -u /dev/null src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/crypto.inc:1.1
--- /dev/null	Sun Mar  4 20:00:12 2018
+++ src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/crypto.inc	Sun Mar  4 20:00:12 2018
@@ -0,0 +1,5 @@
+.PATH.S: ${.PARSEDIR}
+
+CRYPTO_SRCS += libc-memequal.c
+
+.include "../../crypto.inc"



CVS commit: src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k

2018-03-04 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Mar  5 00:59:43 UTC 2018

Modified Files:
src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k: aes-m68k.S

Log Message:
make the key functions public, and provide function type and size attributes.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes-m68k.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes-m68k.S
diff -u src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes-m68k.S:1.1 src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes-m68k.S:1.2
--- src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes-m68k.S:1.1	Tue Feb  7 06:18:43 2017
+++ src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes-m68k.S	Sun Mar  4 19:59:43 2018
@@ -1,4 +1,4 @@
-|	$NetBSD: aes-m68k.S,v 1.1 2017/02/07 11:18:43 isaki Exp $
+|	$NetBSD: aes-m68k.S,v 1.2 2018/03/05 00:59:43 christos Exp $
 
 | Copyright (C) 2016 Tetsuya Isaki. All rights reserved.
 | Copyright (C) 2016 Y.Sugahara (moveccr). All rights reserved.
@@ -28,12 +28,12 @@
 #define rounds	(60 * 4)
 
 | int
-| private_AES_set_encrypt_key(const unsigned char *userKey,
+| AES_set_encrypt_key(const unsigned char *userKey,
 |  const int bits,
 |  AES_KEY *key)
-.global private_AES_set_encrypt_key
-private_AES_set_encrypt_key:
-_private_AES_set_encrypt_key:
+	.global	AES_set_encrypt_key
+	.type	AES_set_encrypt_key, @function
+AES_set_encrypt_key:
 	moveml	%d2-%d7/%a2-%a6,%sp@-
 	moveal	%sp@(44+4),%a0		| userKey
 	moveal	%sp@(44+8),%a1		| bits
@@ -378,14 +378,16 @@ pek_return1:
 pek_return2:
 	moveql	#-2,%d0
 	bra	pek_return
+	.size	AES_set_encrypt_key, .-AES_set_encrypt_key
 
 
 | int
 | private_AES_set_decrypt_key(const unsigned char *userKey,
 |  const int bits,
 |  AES_KEY *key)
-.global private_AES_set_decrypt_key
-private_AES_set_decrypt_key:
+	.global	AES_set_decrypt_key
+	.type	AES_set_decrypt_key, @function
+AES_set_decrypt_key:
 	moveml	%d2-%d7/%a2-%a6,%sp@-
 	moveal	%sp@(44+4),%a0		| userKey
 	moveal	%sp@(44+8),%a1		| bits
@@ -395,7 +397,7 @@ private_AES_set_decrypt_key:
 	movel	%a3,%sp@-
 	movel	%a1,%sp@-
 	movel	%a0,%sp@-
-	bsr	_private_AES_set_encrypt_key
+	bsr	AES_set_encrypt_key
 	lea	%sp@(12),%sp
 	bmi	pdk_return
 
@@ -473,13 +475,15 @@ pdk_apply_loop:
 pdk_return:
 	moveml	%sp@+,%d2-%d7/%a2-%a6
 	rts
+	.size	AES_set_decrypt_key, .-AES_set_decrypt_key
 
 
 | void
 | AES_encrypt(const unsigned char *in,
 |  unsigned char *out,
 |  const AES_KEY *key)
-.global AES_encrypt
+	.global AES_encrypt
+	.type	AES_encrypt, @function
 AES_encrypt:
 	| %a0  in,  Te0
 	| %a1  out, Te1
@@ -823,12 +827,14 @@ enc_last:
 
 	moveml	%sp@+,%d2-%d7/%a2-%a5
 	rts
+	.size	AES_set_decrypt_key, .-AES_set_decrypt_key
 
 | void
 | AES_decrypt(const unsigned char *in,
 |  unsigned char *out,
 |  const AES_KEY *key)
-.global AES_decrypt
+	.global	AES_decrypt
+	.type	AES_decrypt, @function
 AES_decrypt:
 	| %a0  in,  Td0
 	| %a1  out, Td1
@@ -1183,6 +1189,7 @@ dec_loop_start:
 
 	moveml	%sp@+,%d2-%d7/%a2-%a5
 	rts
+	.size	AES_decrypt, .-AES_decrypt
 
 	.data
 	.balign	4



CVS commit: src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k

2017-02-08 Thread Rin Okuyama
Module Name:src
Committed By:   rin
Date:   Wed Feb  8 21:43:53 UTC 2017

Modified Files:
src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k: aes.inc

Log Message:
Do not use the assembler version of AES routines for m68000; they contain
instructions available for 68020 and later.

Fix sun2 build.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes.inc
diff -u src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes.inc:1.1 src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes.inc:1.2
--- src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes.inc:1.1	Tue Feb  7 11:18:43 2017
+++ src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes.inc	Wed Feb  8 21:43:53 2017
@@ -1,4 +1,6 @@
+.if ${MACHINE_ARCH} != "m68000"
 .PATH.S: ${.PARSEDIR}
 AES_SRCS = aes-m68k.S aes_cbc.c
 AESCPPFLAGS = -DAES_ASM
+.endif
 .include "../../aes.inc"



CVS commit: src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k

2017-02-07 Thread Tetsuya Isaki
Module Name:src
Committed By:   isaki
Date:   Tue Feb  7 11:18:43 UTC 2017

Added Files:
src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k: aes-m68k.S
aes.inc

Log Message:
Implement m68k assembly version of AES.
It's approx 1.4 times faster than the original one.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 \
src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes-m68k.S \
src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:

Index: src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes-m68k.S
diff -u /dev/null src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes-m68k.S:1.1
--- /dev/null	Tue Feb  7 11:18:43 2017
+++ src/crypto/external/bsd/openssl/lib/libcrypto/arch/m68k/aes-m68k.S	Tue Feb  7 11:18:43 2017
@@ -0,0 +1,1745 @@
+|	$NetBSD: aes-m68k.S,v 1.1 2017/02/07 11:18:43 isaki Exp $
+
+| Copyright (C) 2016 Tetsuya Isaki. All rights reserved.
+| Copyright (C) 2016 Y.Sugahara (moveccr). All rights reserved.
+|
+| Redistribution and use in source and binary forms, with or without
+| modification, are permitted provided that the following conditions
+| are met:
+| 1. Redistributions of source code must retain the above copyright
+|notice, this list of conditions and the following disclaimer.
+| 2. Redistributions in binary form must reproduce the above copyright
+|notice, this list of conditions and the following disclaimer in the
+|documentation and/or other materials provided with the distribution.
+|
+| THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+| IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+| OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+| IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+| INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+| BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+| LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+| AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+| OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+| OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+| SUCH DAMAGE.
+
+#define rd_key	(0)
+#define rounds	(60 * 4)
+
+| int
+| private_AES_set_encrypt_key(const unsigned char *userKey,
+|  const int bits,
+|  AES_KEY *key)
+.global private_AES_set_encrypt_key
+private_AES_set_encrypt_key:
+_private_AES_set_encrypt_key:
+	moveml	%d2-%d7/%a2-%a6,%sp@-
+	moveal	%sp@(44+4),%a0		| userKey
+	moveal	%sp@(44+8),%a1		| bits
+	moveal	%sp@(44+12),%a3		| key
+
+	tstl	%a0
+	beq	pek_return1		| return -1 if userKey == NULL
+	tstl	%a3
+	beq	pek_return1		| return -1 if key == NULL
+
+	cmpaw	#128,%a1
+	bne	pek192_check		| unless bits == 128
+pek128:
+	| %d0-%d7 rk[0..7]
+	| %a0 userKey, Te0
+	| %a1  Te1
+	| %a2  Te2
+	| %a3 key, Te3
+	| %a4 rcon_byte
+	| %a5 [4]
+	| %a6 end of rcon_byte
+
+	moveq	#10,%d0
+	movel	%d0,%a3@(rounds)	| key->rounds = 10
+
+	lea	%a3@(rd_key),%a5	| [0]
+
+	| rk[0] = GETU32(userKey );
+	| rk[1] = GETU32(userKey +  4);
+	| rk[2] = GETU32(userKey +  8);
+	| rk[3] = GETU32(userKey + 12);
+	moveml	%a0@,%d0-%d3
+	movel	%d0,%a5@+
+	movel	%d1,%a5@+
+	movel	%d2,%a5@+
+	movel	%d3,%a5@+
+
+	lea	%pc@(Te0),%a0		| %a0 = Te0
+	lea	%a0@(256*4),%a1		| %a1 = Te1
+	lea	%a1@(256*4),%a2		| %a2 = Te2
+	lea	%a2@(256*4),%a3		| %a3 = Te3
+
+	moveq	#0,%d7
+	lea	%pc@(rcon_byte),%a4
+	lea	%a4@(10),%a6
+
+pek128_loop:
+	| d6 consists of four Te index bytes
+	movel	%d3,%d5			| d5=rk[3] as {1,2,3,0}
+	moveb	%d5,%d7			| d7=temp
+	moveb	%a0@(2,%d7:w:4),%d4	| d4=$xx00
+	swap	%d5			| d5={3,0,1,2}
+	lsll	#8,%d4			| d4=$00xx
+	moveb	%d5,%d7			| d7=temp>>16
+	moveb	%a2@(0,%d7:w:4),%d6	| d6=$xx22
+	lsrl	#8,%d5			| d5={x,3,0,1}
+	moveb	%a4@+,%d7		| LSByte ^= rcon[i]
+	eorb	%d7,%d6
+	lsll	#8,%d6			| d6=$22xx
+	moveb	%d5,%d7			| d7=temp>>24
+	moveb	%a1@(3,%d7:w:4),%d4	| d4=$0011
+	swap	%d5			| d5={0,1,x,3}
+	moveb	%d5,%d7			| d7=temp>>8
+	moveb	%a3@(1,%d7:w:4),%d6	| d6=$2233
+	swap	%d6			| d6=$2233
+	movew	%d4,%d6			| d6=$22330011
+
+	eorl	%d6,%d0			| rk[4] = rk[0]^ (Te..)
+	movel	%d0,%a5@+
+	eorl	%d0,%d1			| rk[5] = rk[1] ^ rk[4];
+	movel	%d1,%a5@+
+	eorl	%d1,%d2			| rk[6] = rk[2] ^ rk[5];
+	movel	%d2,%a5@+
+	eorl	%d2,%d3			| rk[7] = rk[3] ^ rk[6];
+	movel	%d3,%a5@+
+
+	cmpal	%a4,%a6
+	bne	pek128_loop		|if (++i == 10) return 0;
+
+pek_return0:
+	moveql	#0,%d0
+pek_return:
+	moveml	%sp@+,%d2-%d7/%a2-%a6
+	rts
+
+pek192_check:
+	| %a0 userKey
+	| %a1 bits
+	| %a3 key
+	cmpaw	#192,%a1
+	bne	pek256_check		| unless bits == 192
+pek192:
+	| %a0 Te0
+	| %a1 Te1
+	| %a2 Te2
+	| %a3 Te3
+	| %a4 rcon_byte
+	| %a5 [6]
+	| %a6 end of rcon_byte
+	moveq	#12,%d0
+	movel	%d0,%a3@(rounds)	| key->rounds = 12
+
+	lea