X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=crypto%2Fbn%2Fbn_shift.c;h=61aae65a6bfce8f86f7e4b358ee54bf16f613baf;hb=8d8a8041ecd1b93e3279a31c404bbde15ba2b710;hp=d711887373b43566bc45d55d885c8a85f4fe1e57;hpb=eda1f21f1af8b6f77327e7b37573af9c1ba73726;p=oweals%2Fopenssl.git diff --git a/crypto/bn/bn_shift.c b/crypto/bn/bn_shift.c index d711887373..61aae65a6b 100644 --- a/crypto/bn/bn_shift.c +++ b/crypto/bn/bn_shift.c @@ -1,5 +1,5 @@ /* crypto/bn/bn_shift.c */ -/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * * This package is an SSL implementation written @@ -60,9 +60,7 @@ #include "cryptlib.h" #include "bn_lcl.h" -int BN_lshift1(r, a) -BIGNUM *r; -BIGNUM *a; +int BN_lshift1(BIGNUM *r, BIGNUM *a) { register BN_ULONG *ap,*rp,t,c; int i; @@ -70,12 +68,12 @@ BIGNUM *a; if (r != a) { r->neg=a->neg; - if (bn_expand(r,(a->top+1)*BN_BITS2) == NULL) return(0); + if (bn_wexpand(r,a->top+1) == NULL) return(0); r->top=a->top; } else { - if (bn_expand(r,(a->top+1)*BN_BITS2) == NULL) return(0); + if (bn_wexpand(r,a->top+1) == NULL) return(0); } ap=a->d; rp=r->d; @@ -94,9 +92,7 @@ BIGNUM *a; return(1); } -int BN_rshift1(r, a) -BIGNUM *r; -BIGNUM *a; +int BN_rshift1(BIGNUM *r, BIGNUM *a) { BN_ULONG *ap,*rp,t,c; int i; @@ -108,7 +104,7 @@ BIGNUM *a; } if (a != r) { - if (bn_expand(r,a->top*BN_BITS2) == NULL) return(0); + if (bn_wexpand(r,a->top) == NULL) return(0); r->top=a->top; r->neg=a->neg; } @@ -125,17 +121,14 @@ BIGNUM *a; return(1); } -int BN_lshift(r, a, n) -BIGNUM *r; -BIGNUM *a; -int n; +int BN_lshift(BIGNUM *r, const BIGNUM *a, int n) { int i,nw,lb,rb; BN_ULONG *t,*f; BN_ULONG l; r->neg=a->neg; - if (bn_expand(r,(a->top*BN_BITS2)+n) == NULL) return(0); + if (bn_wexpand(r,a->top+(n/BN_BITS2)+1) == NULL) return(0); nw=n/BN_BITS2; lb=n%BN_BITS2; rb=BN_BITS2-lb; @@ -160,10 +153,7 @@ int n; return(1); } -int BN_rshift(r, a, n) -BIGNUM *r; -BIGNUM *a; -int n; +int BN_rshift(BIGNUM *r, BIGNUM *a, int n) { int i,j,nw,lb,rb; BN_ULONG *t,*f; @@ -180,7 +170,7 @@ int n; if (r != a) { r->neg=a->neg; - if (bn_expand(r,(a->top-nw+1)*BN_BITS2) == NULL) return(0); + if (bn_wexpand(r,a->top-nw+1) == NULL) return(0); } f= &(a->d[nw]);