Loading CHANGES +6 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,12 @@ Changes between 0.9.8a and 0.9.9 [xx XXX xxxx] *) New candidate for BIGNUM assembler implementation, bn_mul_mont, dedicated Montgomery multiplication procedure, is introduced. BN_MONT_CTX is modified to allow bn_mul_mont to reach for higher "64-bit" performance on certain 32-bit targets. [Andy Polyakov] *) New option SSL_OP_NO_COMP to disable use of compression selectively in SSL structures. New SSL ctrl to set maximum send fragment size. Save memory by seeting the I/O buffer sizes dynamically instead of Loading crypto/bn/asm/sparcv9a-mont.pl +2 −2 Original line number Diff line number Diff line Loading @@ -70,7 +70,7 @@ $rp="%i0"; # BN_ULONG *rp, $ap="%i1"; # const BN_ULONG *ap, $bp="%i2"; # const BN_ULONG *bp, $np="%i3"; # const BN_ULONG *np, $n0="%i4"; # BN_ULONG n0, $n0="%i4"; # const BN_ULONG *n0, $num="%i5"; # int num); $tp="%l0"; Loading Loading @@ -125,7 +125,7 @@ $fname: sethi %hi(0xffff),$mask sll $num,3,$num ! num*=8 or $mask,%lo(0xffff),$mask mov %i4,$n0 ! reassigned, remember? ldx [%i4],$n0 ! reassigned, remember? add %sp,$bias,%o0 ! real top of stack sll $num,2,%o1 Loading crypto/bn/asm/x86-mont.pl +2 −1 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ if($sse2) { &mov ("ebx",&wparam(1)); # const BN_ULONG *ap &mov ("ecx",&wparam(2)); # const BN_ULONG *bp &mov ("edx",&wparam(3)); # const BN_ULONG *np &mov ("esi",&wparam(4)); # BN_ULONG n0 &mov ("esi",&wparam(4)); # const BN_ULONG *n0 &mov ($num,&wparam(5)); # int num &mov ("edi","esp"); # saved stack pointer! Loading @@ -78,6 +78,7 @@ if($sse2) { &sub ($num,1); # num is restored to its original value # and will remain constant from now... &mov ("esi",&DWP(0,"esi")); # pull n0[0] &mov ($_rp,"eax"); # ... save a copy of argument block &mov ($_ap,"ebx"); &mov ($_bp,"ecx"); Loading crypto/bn/asm/x86_64-mont.pl +3 −1 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ $rp="%rdi"; # BN_ULONG *rp, $ap="%rsi"; # const BN_ULONG *ap, $bp="%rdx"; # const BN_ULONG *bp, $np="%rcx"; # const BN_ULONG *np, $n0="%r8"; # BN_ULONG n0, $n0="%r8"; # const BN_ULONG *n0, $num="%r9"; # int num); $lo0="%r10"; $hi0="%r11"; Loading Loading @@ -55,6 +55,8 @@ bn_mul_mont: mov %rbp,8(%rsp,$num,8) # tp[num+1]=%rsp mov %rdx,$bp # $bp reassigned, remember? mov ($n0),$n0 # pull n0[0] value xor $i,$i # i=0 xor $j,$j # j=0 Loading crypto/bn/bn.h +2 −2 Original line number Diff line number Diff line Loading @@ -295,7 +295,7 @@ struct bn_mont_ctx_st BIGNUM N; /* The modulus */ BIGNUM Ni; /* R*(1/R mod N) - N*Ni = 1 * (Ni is only stored for bignum algorithm) */ BN_ULONG n0; /* least significant word of Ni */ BN_ULONG n0[2];/* least significant word(s) of Ni */ int flags; }; Loading Loading @@ -729,7 +729,7 @@ int RAND_pseudo_bytes(unsigned char *buf,int num); bn_pollute(a); \ } int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,BN_ULONG n0, int num); int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0, int num); BN_ULONG bn_mul_add_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG w); BN_ULONG bn_mul_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG w); void bn_sqr_words(BN_ULONG *rp, const BN_ULONG *ap, int num); Loading Loading
CHANGES +6 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,12 @@ Changes between 0.9.8a and 0.9.9 [xx XXX xxxx] *) New candidate for BIGNUM assembler implementation, bn_mul_mont, dedicated Montgomery multiplication procedure, is introduced. BN_MONT_CTX is modified to allow bn_mul_mont to reach for higher "64-bit" performance on certain 32-bit targets. [Andy Polyakov] *) New option SSL_OP_NO_COMP to disable use of compression selectively in SSL structures. New SSL ctrl to set maximum send fragment size. Save memory by seeting the I/O buffer sizes dynamically instead of Loading
crypto/bn/asm/sparcv9a-mont.pl +2 −2 Original line number Diff line number Diff line Loading @@ -70,7 +70,7 @@ $rp="%i0"; # BN_ULONG *rp, $ap="%i1"; # const BN_ULONG *ap, $bp="%i2"; # const BN_ULONG *bp, $np="%i3"; # const BN_ULONG *np, $n0="%i4"; # BN_ULONG n0, $n0="%i4"; # const BN_ULONG *n0, $num="%i5"; # int num); $tp="%l0"; Loading Loading @@ -125,7 +125,7 @@ $fname: sethi %hi(0xffff),$mask sll $num,3,$num ! num*=8 or $mask,%lo(0xffff),$mask mov %i4,$n0 ! reassigned, remember? ldx [%i4],$n0 ! reassigned, remember? add %sp,$bias,%o0 ! real top of stack sll $num,2,%o1 Loading
crypto/bn/asm/x86-mont.pl +2 −1 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ if($sse2) { &mov ("ebx",&wparam(1)); # const BN_ULONG *ap &mov ("ecx",&wparam(2)); # const BN_ULONG *bp &mov ("edx",&wparam(3)); # const BN_ULONG *np &mov ("esi",&wparam(4)); # BN_ULONG n0 &mov ("esi",&wparam(4)); # const BN_ULONG *n0 &mov ($num,&wparam(5)); # int num &mov ("edi","esp"); # saved stack pointer! Loading @@ -78,6 +78,7 @@ if($sse2) { &sub ($num,1); # num is restored to its original value # and will remain constant from now... &mov ("esi",&DWP(0,"esi")); # pull n0[0] &mov ($_rp,"eax"); # ... save a copy of argument block &mov ($_ap,"ebx"); &mov ($_bp,"ecx"); Loading
crypto/bn/asm/x86_64-mont.pl +3 −1 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ $rp="%rdi"; # BN_ULONG *rp, $ap="%rsi"; # const BN_ULONG *ap, $bp="%rdx"; # const BN_ULONG *bp, $np="%rcx"; # const BN_ULONG *np, $n0="%r8"; # BN_ULONG n0, $n0="%r8"; # const BN_ULONG *n0, $num="%r9"; # int num); $lo0="%r10"; $hi0="%r11"; Loading Loading @@ -55,6 +55,8 @@ bn_mul_mont: mov %rbp,8(%rsp,$num,8) # tp[num+1]=%rsp mov %rdx,$bp # $bp reassigned, remember? mov ($n0),$n0 # pull n0[0] value xor $i,$i # i=0 xor $j,$j # j=0 Loading
crypto/bn/bn.h +2 −2 Original line number Diff line number Diff line Loading @@ -295,7 +295,7 @@ struct bn_mont_ctx_st BIGNUM N; /* The modulus */ BIGNUM Ni; /* R*(1/R mod N) - N*Ni = 1 * (Ni is only stored for bignum algorithm) */ BN_ULONG n0; /* least significant word of Ni */ BN_ULONG n0[2];/* least significant word(s) of Ni */ int flags; }; Loading Loading @@ -729,7 +729,7 @@ int RAND_pseudo_bytes(unsigned char *buf,int num); bn_pollute(a); \ } int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,BN_ULONG n0, int num); int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0, int num); BN_ULONG bn_mul_add_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG w); BN_ULONG bn_mul_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG w); void bn_sqr_words(BN_ULONG *rp, const BN_ULONG *ap, int num); Loading