Loading crypto/bn/bn_lcl.h +2 −0 Original line number Diff line number Diff line Loading @@ -402,6 +402,8 @@ void bn_sqr_normal(BN_ULONG *r, const BN_ULONG *a, int n, BN_ULONG *tmp); void bn_sqr_comba8(BN_ULONG *r,const BN_ULONG *a); void bn_sqr_comba4(BN_ULONG *r,const BN_ULONG *a); int bn_cmp_words(const BN_ULONG *a,const BN_ULONG *b,int n); int bn_cmp_part_words(const BN_ULONG *a, const BN_ULONG *b, int cl, int dl); void bn_mul_recursive(BN_ULONG *r,BN_ULONG *a,BN_ULONG *b,int n2,BN_ULONG *t); void bn_mul_part_recursive(BN_ULONG *r,BN_ULONG *a,BN_ULONG *b, int tn, int n,BN_ULONG *t); Loading crypto/bn/bn_lib.c +25 −0 Original line number Diff line number Diff line Loading @@ -777,3 +777,28 @@ int bn_cmp_words(const BN_ULONG *a, const BN_ULONG *b, int n) } return(0); } int bn_cmp_part_words(const BN_ULONG *a, const BN_ULONG *b, int cl, int dl) { int n,i; n = cl-1; if (dl < 0) { for (i=-dl; i>0; i++) { if (b[n+i] != 0) return -1; /* a < b */ } } if (dl > 0) { for (i=dl; i>0; i--) { if (a[n+i] != 0) return 1; /* a > b */ } } return bn_cmp_words(a,b,cl); } crypto/bn/bn_mul.c +2 −13 Original line number Diff line number Diff line Loading @@ -61,8 +61,8 @@ #include "cryptlib.h" #include "bn_lcl.h" /* Here follows specialised variants of bn_cmp_words(), bn_add_words() and bn_sub_words(). They all have the property performing operations on /* Here follows specialised variants of bn_add_words() and bn_sub_words(). They have the property performing operations on arrays of different sizes. The sizes of those arrays is expressed through cl, which is the common length ( basicall, min(len(a),len(b)) ), and dl, which is the delta between the two lengths, calculated as len(a)-len(b). Loading @@ -71,17 +71,6 @@ These functions should probably end up in bn_asm.c as soon as there are assembler counterparts for the systems that use assembler files. */ int bn_cmp_part_words(const BN_ULONG *a, const BN_ULONG *b, int cl, int dl) { if (dl < 0) /* a < b */ return -1; if (dl > 0) /* a > b */ return 1; return bn_cmp_words(a,b,cl); } BN_ULONG bn_sub_part_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b, int cl, int dl) Loading Loading
crypto/bn/bn_lcl.h +2 −0 Original line number Diff line number Diff line Loading @@ -402,6 +402,8 @@ void bn_sqr_normal(BN_ULONG *r, const BN_ULONG *a, int n, BN_ULONG *tmp); void bn_sqr_comba8(BN_ULONG *r,const BN_ULONG *a); void bn_sqr_comba4(BN_ULONG *r,const BN_ULONG *a); int bn_cmp_words(const BN_ULONG *a,const BN_ULONG *b,int n); int bn_cmp_part_words(const BN_ULONG *a, const BN_ULONG *b, int cl, int dl); void bn_mul_recursive(BN_ULONG *r,BN_ULONG *a,BN_ULONG *b,int n2,BN_ULONG *t); void bn_mul_part_recursive(BN_ULONG *r,BN_ULONG *a,BN_ULONG *b, int tn, int n,BN_ULONG *t); Loading
crypto/bn/bn_lib.c +25 −0 Original line number Diff line number Diff line Loading @@ -777,3 +777,28 @@ int bn_cmp_words(const BN_ULONG *a, const BN_ULONG *b, int n) } return(0); } int bn_cmp_part_words(const BN_ULONG *a, const BN_ULONG *b, int cl, int dl) { int n,i; n = cl-1; if (dl < 0) { for (i=-dl; i>0; i++) { if (b[n+i] != 0) return -1; /* a < b */ } } if (dl > 0) { for (i=dl; i>0; i--) { if (a[n+i] != 0) return 1; /* a > b */ } } return bn_cmp_words(a,b,cl); }
crypto/bn/bn_mul.c +2 −13 Original line number Diff line number Diff line Loading @@ -61,8 +61,8 @@ #include "cryptlib.h" #include "bn_lcl.h" /* Here follows specialised variants of bn_cmp_words(), bn_add_words() and bn_sub_words(). They all have the property performing operations on /* Here follows specialised variants of bn_add_words() and bn_sub_words(). They have the property performing operations on arrays of different sizes. The sizes of those arrays is expressed through cl, which is the common length ( basicall, min(len(a),len(b)) ), and dl, which is the delta between the two lengths, calculated as len(a)-len(b). Loading @@ -71,17 +71,6 @@ These functions should probably end up in bn_asm.c as soon as there are assembler counterparts for the systems that use assembler files. */ int bn_cmp_part_words(const BN_ULONG *a, const BN_ULONG *b, int cl, int dl) { if (dl < 0) /* a < b */ return -1; if (dl > 0) /* a > b */ return 1; return bn_cmp_words(a,b,cl); } BN_ULONG bn_sub_part_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b, int cl, int dl) Loading