OpenSSL 1.1.1-pre2
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
|
||||
#
|
||||
# ====================================================================
|
||||
# Written by Andy Polyakov <appro@fy.chalmers.se> for the OpenSSL
|
||||
# Written by Andy Polyakov <appro@openssl.org> for the OpenSSL
|
||||
# project. Rights for redistribution and usage in source and binary
|
||||
# forms are granted according to the OpenSSL license.
|
||||
# ====================================================================
|
||||
@@ -31,7 +31,7 @@
|
||||
# multiplying 64 by CPU clock frequency and dividing by relevant
|
||||
# value from the given table:
|
||||
#
|
||||
# $SCALE=2/8 icc8 gcc3
|
||||
# $SCALE=2/8 icc8 gcc3
|
||||
# Intel P4 3200/4600 4600(*) 6400
|
||||
# Intel PIII 2900/3000 4900 5400
|
||||
# AMD K[78] 2500/1800 9900 8200(**)
|
||||
@@ -59,7 +59,7 @@ require "x86asm.pl";
|
||||
$output=pop;
|
||||
open STDOUT,">$output";
|
||||
|
||||
&asm_init($ARGV[0],"wp-mmx.pl");
|
||||
&asm_init($ARGV[0]);
|
||||
|
||||
sub L() { &data_byte(@_); }
|
||||
sub LL()
|
||||
@@ -502,6 +502,6 @@ for($i=0;$i<8;$i++) {
|
||||
&L(0xca,0x2d,0xbf,0x07,0xad,0x5a,0x83,0x33);
|
||||
|
||||
&function_end_B("whirlpool_block_mmx");
|
||||
&asm_finish();
|
||||
&asm_finish();
|
||||
|
||||
close STDOUT;
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
#
|
||||
# ====================================================================
|
||||
# Written by Andy Polyakov <appro@fy.chalmers.se> for the OpenSSL
|
||||
# Written by Andy Polyakov <appro@openssl.org> for the OpenSSL
|
||||
# project. Rights for redistribution and usage in source and binary
|
||||
# forms are granted according to the OpenSSL license.
|
||||
# ====================================================================
|
||||
@@ -66,14 +66,22 @@ $code=<<___;
|
||||
.type $func,\@function,3
|
||||
.align 16
|
||||
$func:
|
||||
.cfi_startproc
|
||||
mov %rsp,%rax
|
||||
.cfi_def_cfa_register %rax
|
||||
push %rbx
|
||||
.cfi_push %rbx
|
||||
push %rbp
|
||||
.cfi_push %rbp
|
||||
push %r12
|
||||
.cfi_push %r12
|
||||
push %r13
|
||||
.cfi_push %r13
|
||||
push %r14
|
||||
.cfi_push %r14
|
||||
push %r15
|
||||
.cfi_push %r15
|
||||
|
||||
mov %rsp,%r11
|
||||
sub \$128+40,%rsp
|
||||
and \$-64,%rsp
|
||||
|
||||
@@ -81,7 +89,8 @@ $func:
|
||||
mov %rdi,0(%r10) # save parameter block
|
||||
mov %rsi,8(%r10)
|
||||
mov %rdx,16(%r10)
|
||||
mov %r11,32(%r10) # saved stack pointer
|
||||
mov %rax,32(%r10) # saved stack pointer
|
||||
.cfi_cfa_expression %rsp+`128+32`,deref,+8
|
||||
.Lprologue:
|
||||
|
||||
mov %r10,%rbx
|
||||
@@ -205,15 +214,24 @@ $code.=<<___;
|
||||
jmp .Louterloop
|
||||
.Lalldone:
|
||||
mov 32(%rbx),%rsi # restore saved pointer
|
||||
mov (%rsi),%r15
|
||||
mov 8(%rsi),%r14
|
||||
mov 16(%rsi),%r13
|
||||
mov 24(%rsi),%r12
|
||||
mov 32(%rsi),%rbp
|
||||
mov 40(%rsi),%rbx
|
||||
lea 48(%rsi),%rsp
|
||||
.cfi_def_cfa %rsi,8
|
||||
mov -48(%rsi),%r15
|
||||
.cfi_restore %r15
|
||||
mov -40(%rsi),%r14
|
||||
.cfi_restore %r14
|
||||
mov -32(%rsi),%r13
|
||||
.cfi_restore %r13
|
||||
mov -24(%rsi),%r12
|
||||
.cfi_restore %r12
|
||||
mov -16(%rsi),%rbp
|
||||
.cfi_restore %rbp
|
||||
mov -8(%rsi),%rbx
|
||||
.cfi_restore %rbx
|
||||
lea (%rsi),%rsp
|
||||
.cfi_def_cfa_register %rsp
|
||||
.Lepilogue:
|
||||
ret
|
||||
.cfi_endproc
|
||||
.size $func,.-$func
|
||||
|
||||
.align 64
|
||||
@@ -526,7 +544,6 @@ se_handler:
|
||||
jae .Lin_prologue
|
||||
|
||||
mov 128+32(%rax),%rax # pull saved stack pointer
|
||||
lea 48(%rax),%rax
|
||||
|
||||
mov -8(%rax),%rbx
|
||||
mov -16(%rax),%rbp
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
LIBS=../../libcrypto
|
||||
SOURCE[../../libcrypto]=wp_dgst.c {- $target{wp_asm_src} -}
|
||||
|
||||
GENERATE[wp-mmx.s]=asm/wp-mmx.pl $(PERLASM_SCHEME) $(CFLAGS) $(LIB_CFLAGS) $(PROCESSOR)
|
||||
GENERATE[wp-mmx.s]=asm/wp-mmx.pl \
|
||||
$(PERLASM_SCHEME) $(LIB_CFLAGS) $(LIB_CPPFLAGS) $(PROCESSOR)
|
||||
DEPEND[wp-mmx.s]=../perlasm/x86asm.pl
|
||||
|
||||
GENERATE[wp-x86_64.s]=asm/wp-x86_64.pl $(PERLASM_SCHEME)
|
||||
@@ -10,14 +10,6 @@
|
||||
/**
|
||||
* The Whirlpool hashing function.
|
||||
*
|
||||
* <P>
|
||||
* <b>References</b>
|
||||
*
|
||||
* <P>
|
||||
* The Whirlpool algorithm was developed by
|
||||
* <a href="mailto:pbarreto@scopus.com.br">Paulo S. L. M. Barreto</a> and
|
||||
* <a href="mailto:vincent.rijmen@cryptomathic.com">Vincent Rijmen</a>.
|
||||
*
|
||||
* See
|
||||
* P.S.L.M. Barreto, V. Rijmen,
|
||||
* ``The Whirlpool hashing function,''
|
||||
|
||||
@@ -10,14 +10,6 @@
|
||||
/**
|
||||
* The Whirlpool hashing function.
|
||||
*
|
||||
* <P>
|
||||
* <b>References</b>
|
||||
*
|
||||
* <P>
|
||||
* The Whirlpool algorithm was developed by
|
||||
* <a href="mailto:pbarreto@scopus.com.br">Paulo S. L. M. Barreto</a> and
|
||||
* <a href="mailto:vincent.rijmen@cryptomathic.com">Vincent Rijmen</a>.
|
||||
*
|
||||
* See
|
||||
* P.S.L.M. Barreto, V. Rijmen,
|
||||
* ``The Whirlpool hashing function,''
|
||||
@@ -67,7 +59,7 @@
|
||||
int WHIRLPOOL_Init(WHIRLPOOL_CTX *c)
|
||||
{
|
||||
memset(c, 0, sizeof(*c));
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int WHIRLPOOL_Update(WHIRLPOOL_CTX *c, const void *_inp, size_t bytes)
|
||||
@@ -88,7 +80,7 @@ int WHIRLPOOL_Update(WHIRLPOOL_CTX *c, const void *_inp, size_t bytes)
|
||||
if (bytes)
|
||||
WHIRLPOOL_BitUpdate(c, inp, bytes * 8);
|
||||
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c, const void *_inp, size_t bits)
|
||||
@@ -247,9 +239,9 @@ int WHIRLPOOL_Final(unsigned char *md, WHIRLPOOL_CTX *c)
|
||||
if (md) {
|
||||
memcpy(md, c->H.c, WHIRLPOOL_DIGEST_LENGTH);
|
||||
OPENSSL_cleanse(c, sizeof(*c));
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned char *WHIRLPOOL(const void *inp, size_t bytes, unsigned char *md)
|
||||
@@ -262,5 +254,5 @@ unsigned char *WHIRLPOOL(const void *inp, size_t bytes, unsigned char *md)
|
||||
WHIRLPOOL_Init(&ctx);
|
||||
WHIRLPOOL_Update(&ctx, inp, bytes);
|
||||
WHIRLPOOL_Final(md, &ctx);
|
||||
return (md);
|
||||
return md;
|
||||
}
|
||||
Reference in New Issue
Block a user