Compare commits

...

5 Commits

Author SHA1 Message Date
Dr. Stephen Henson
4089bd6080 eCos ARMv4/5 support 2013-12-16 14:29:20 +00:00
Andy Polyakov
baab0cf780 sha1-armv4-large.pl: comply with ABI.
(cherry picked from commit 1a9d60d2e3)
2013-12-16 14:08:56 +00:00
Dr. Stephen Henson
7e98d95f56 Don't require tag before ciphertext in AESGCM mode
(cherry picked from commit 964eaad78c)
2013-12-16 14:08:30 +00:00
Dr. Stephen Henson
b0ee17ad47 Add MIPS support. 2013-12-16 14:07:18 +00:00
Dr. Stephen Henson
4f6c4c1896 Support for WinEC7. 2013-04-10 15:38:24 +01:00
6 changed files with 21 additions and 6 deletions

View File

@@ -397,6 +397,8 @@ my %table=(
"linux-alpha+bwx-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "linux-alpha+bwx-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}", "linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}",
"linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}", "linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}",
# eCos ARMv4/5
"ecos-armv4", "gcc:-D__ECOS__ -I\$(ECOSCFG)/include -Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Wno-write-strings -mno-thumb-interwork -mcpu=arm926ej-s -g -O2 -fno-exceptions::-D_REENTRANT::-nostartfiles -L\$(ECOSCFG)/lib -Ttarget.ld::".eval{my $asm=$armv4_asm;$asm=~s/armcap.o//;$asm},
# Android: linux-* but without -DTERMIO and pointers to headers and libs. # Android: linux-* but without -DTERMIO and pointers to headers and libs.
"android","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "android","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",

5
config
View File

@@ -134,6 +134,10 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
echo "${MACHINE}-dg-dgux"; exit 0 echo "${MACHINE}-dg-dgux"; exit 0
;; ;;
ecos:*)
echo "${MACHINE}-whatever-ecos"; exit 0
;;
HI-UX:*) HI-UX:*)
echo "${MACHINE}-hi-hiux"; exit 0 echo "${MACHINE}-hi-hiux"; exit 0
;; ;;
@@ -645,6 +649,7 @@ case "$GUESSOS" in
options="$options -DB_ENDIAN -mschedule=$CPUSCHEDULE -march=$CPUARCH" options="$options -DB_ENDIAN -mschedule=$CPUSCHEDULE -march=$CPUARCH"
OUT="linux-generic32" ;; OUT="linux-generic32" ;;
armv[45]*-*-ecos) OUT="ecos-armv4" ;;
armv[1-3]*-*-linux2) OUT="linux-generic32" ;; armv[1-3]*-*-linux2) OUT="linux-generic32" ;;
armv[7-9]*-*-linux2) OUT="linux-armv4"; options="$options -march=armv7-a" ;; armv[7-9]*-*-linux2) OUT="linux-armv4"; options="$options -march=armv7-a" ;;
arm*-*-linux2) OUT="linux-armv4" ;; arm*-*-linux2) OUT="linux-armv4" ;;

View File

@@ -956,8 +956,6 @@ static int aes_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
if (!gctx->iv_set) if (!gctx->iv_set)
return -1; return -1;
if (!ctx->encrypt && gctx->taglen < 0)
return -1;
if (in) if (in)
{ {
if (out == NULL) if (out == NULL)
@@ -999,6 +997,8 @@ static int aes_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
{ {
if (!ctx->encrypt) if (!ctx->encrypt)
{ {
if (gctx->taglen < 0)
return -1;
if (CRYPTO_gcm128_finish(&gctx->gcm, if (CRYPTO_gcm128_finish(&gctx->gcm,
ctx->buf, gctx->taglen) != 0) ctx->buf, gctx->taglen) != 0)
return -1; return -1;

View File

@@ -177,6 +177,7 @@ for($i=0;$i<5;$i++) {
$code.=<<___; $code.=<<___;
teq $Xi,sp teq $Xi,sp
bne .L_00_15 @ [((11+4)*5+2)*3] bne .L_00_15 @ [((11+4)*5+2)*3]
sub sp,sp,#25*4
___ ___
&BODY_00_15(@V); unshift(@V,pop(@V)); &BODY_00_15(@V); unshift(@V,pop(@V));
&BODY_16_19(@V); unshift(@V,pop(@V)); &BODY_16_19(@V); unshift(@V,pop(@V));
@@ -186,7 +187,6 @@ ___
$code.=<<___; $code.=<<___;
ldr $K,.LK_20_39 @ [+15+16*4] ldr $K,.LK_20_39 @ [+15+16*4]
sub sp,sp,#25*4
cmn sp,#0 @ [+3], clear carry to denote 20_39 cmn sp,#0 @ [+3], clear carry to denote 20_39
.L_20_39_or_60_79: .L_20_39_or_60_79:
___ ___

View File

@@ -34,9 +34,11 @@ const void *FIPS_text_end(void);
defined(__mips__)|| defined(__mips))) || \ defined(__mips__)|| defined(__mips))) || \
(defined(__NetBSD__) && (defined(__powerpc__) || defined(__i386))) || \ (defined(__NetBSD__) && (defined(__powerpc__) || defined(__i386))) || \
(defined(__linux) && ((defined(__PPC__) && !defined(__PPC64__)) || \ (defined(__linux) && ((defined(__PPC__) && !defined(__PPC64__)) || \
defined(__arm__) || defined(__arm))) || \ defined(__arm__) || defined(__arm)) || \
defined(__mips__)) || \
(defined(__APPLE__) /* verified on all MacOS X & iOS flavors */)|| \ (defined(__APPLE__) /* verified on all MacOS X & iOS flavors */)|| \
(defined(_TMS320C6X)) || \ (defined(_TMS320C6X)) || \
(defined(__ECOS__)) || \
(defined(_WIN32) && defined(_MSC_VER)) (defined(_WIN32) && defined(_MSC_VER))
# define FIPS_REF_POINT_IS_CROSS_COMPILER_AWARE # define FIPS_REF_POINT_IS_CROSS_COMPILER_AWARE
# endif # endif

View File

@@ -127,8 +127,14 @@ elsif ($FLAVOR =~ /CE/)
$base_cflags.=" $wcecdefs"; $base_cflags.=" $wcecdefs";
$base_cflags.=' -I$(WCECOMPAT)/include' if (defined($ENV{'WCECOMPAT'})); $base_cflags.=' -I$(WCECOMPAT)/include' if (defined($ENV{'WCECOMPAT'}));
$base_cflags.=' -I$(PORTSDK_LIBPATH)/../../include' if (defined($ENV{'PORTSDK_LIBPATH'})); $base_cflags.=' -I$(PORTSDK_LIBPATH)/../../include' if (defined($ENV{'PORTSDK_LIBPATH'}));
$opt_cflags=' /MC /O1i'; # optimize for space, but with intrinsics... if ($ENV{PLATFORM} =~ /wce7/i) {
$dbg_clfags=' /MC /Od -DDEBUG -D_DEBUG'; $opt_cflags=' /MT /O1i'; # optimize for space, but with intrinsics...
$dbg_cflags=' /MT /Od -DDEBUG -D_DEBUG';
} else {
$opt_cflags=' /MC /O1i'; # optimize for space, but with intrinsics...
$dbg_cflags=' /MC /Od -DDEBUG -D_DEBUG';
}
$lflags="/nologo /opt:ref $wcelflag"; $lflags="/nologo /opt:ref $wcelflag";
} }
else # Win32 else # Win32