diff options
Diffstat (limited to 'src/lib/libcrypto/bn/bn_blind.c')
| -rw-r--r-- | src/lib/libcrypto/bn/bn_blind.c | 47 |
1 files changed, 24 insertions, 23 deletions
diff --git a/src/lib/libcrypto/bn/bn_blind.c b/src/lib/libcrypto/bn/bn_blind.c index a7b34f0bf0..2d287e6d1b 100644 --- a/src/lib/libcrypto/bn/bn_blind.c +++ b/src/lib/libcrypto/bn/bn_blind.c | |||
| @@ -60,15 +60,18 @@ | |||
| 60 | #include "cryptlib.h" | 60 | #include "cryptlib.h" |
| 61 | #include "bn_lcl.h" | 61 | #include "bn_lcl.h" |
| 62 | 62 | ||
| 63 | BN_BLINDING *BN_BLINDING_new(A,Ai,mod) | 63 | BN_BLINDING *BN_BLINDING_new(BIGNUM *A, BIGNUM *Ai, BIGNUM *mod) |
| 64 | BIGNUM *A; | ||
| 65 | BIGNUM *Ai; | ||
| 66 | BIGNUM *mod; | ||
| 67 | { | 64 | { |
| 68 | BN_BLINDING *ret=NULL; | 65 | BN_BLINDING *ret=NULL; |
| 69 | 66 | ||
| 70 | if ((ret=(BN_BLINDING *)Malloc(sizeof(BN_BLINDING))) == NULL) | 67 | bn_check_top(Ai); |
| 68 | bn_check_top(mod); | ||
| 69 | |||
| 70 | if ((ret=(BN_BLINDING *)OPENSSL_malloc(sizeof(BN_BLINDING))) == NULL) | ||
| 71 | { | ||
| 71 | BNerr(BN_F_BN_BLINDING_NEW,ERR_R_MALLOC_FAILURE); | 72 | BNerr(BN_F_BN_BLINDING_NEW,ERR_R_MALLOC_FAILURE); |
| 73 | return(NULL); | ||
| 74 | } | ||
| 72 | memset(ret,0,sizeof(BN_BLINDING)); | 75 | memset(ret,0,sizeof(BN_BLINDING)); |
| 73 | if ((ret->A=BN_new()) == NULL) goto err; | 76 | if ((ret->A=BN_new()) == NULL) goto err; |
| 74 | if ((ret->Ai=BN_new()) == NULL) goto err; | 77 | if ((ret->Ai=BN_new()) == NULL) goto err; |
| @@ -78,26 +81,26 @@ BIGNUM *mod; | |||
| 78 | return(ret); | 81 | return(ret); |
| 79 | err: | 82 | err: |
| 80 | if (ret != NULL) BN_BLINDING_free(ret); | 83 | if (ret != NULL) BN_BLINDING_free(ret); |
| 81 | return(ret); | 84 | return(NULL); |
| 82 | } | 85 | } |
| 83 | 86 | ||
| 84 | void BN_BLINDING_free(r) | 87 | void BN_BLINDING_free(BN_BLINDING *r) |
| 85 | BN_BLINDING *r; | ||
| 86 | { | 88 | { |
| 89 | if(r == NULL) | ||
| 90 | return; | ||
| 91 | |||
| 87 | if (r->A != NULL) BN_free(r->A ); | 92 | if (r->A != NULL) BN_free(r->A ); |
| 88 | if (r->Ai != NULL) BN_free(r->Ai); | 93 | if (r->Ai != NULL) BN_free(r->Ai); |
| 89 | Free(r); | 94 | OPENSSL_free(r); |
| 90 | } | 95 | } |
| 91 | 96 | ||
| 92 | int BN_BLINDING_update(b,ctx) | 97 | int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx) |
| 93 | BN_BLINDING *b; | ||
| 94 | BN_CTX *ctx; | ||
| 95 | { | 98 | { |
| 96 | int ret=0; | 99 | int ret=0; |
| 97 | 100 | ||
| 98 | if ((b->A == NULL) || (b->Ai == NULL)) | 101 | if ((b->A == NULL) || (b->Ai == NULL)) |
| 99 | { | 102 | { |
| 100 | BNerr(BN_F_BN_BLINDING_UPDATE,BN_R_NOT_INITALISED); | 103 | BNerr(BN_F_BN_BLINDING_UPDATE,BN_R_NOT_INITIALIZED); |
| 101 | goto err; | 104 | goto err; |
| 102 | } | 105 | } |
| 103 | 106 | ||
| @@ -109,28 +112,26 @@ err: | |||
| 109 | return(ret); | 112 | return(ret); |
| 110 | } | 113 | } |
| 111 | 114 | ||
| 112 | int BN_BLINDING_convert(n,b,ctx) | 115 | int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx) |
| 113 | BIGNUM *n; | ||
| 114 | BN_BLINDING *b; | ||
| 115 | BN_CTX *ctx; | ||
| 116 | { | 116 | { |
| 117 | bn_check_top(n); | ||
| 118 | |||
| 117 | if ((b->A == NULL) || (b->Ai == NULL)) | 119 | if ((b->A == NULL) || (b->Ai == NULL)) |
| 118 | { | 120 | { |
| 119 | BNerr(BN_F_BN_BLINDING_CONVERT,BN_R_NOT_INITALISED); | 121 | BNerr(BN_F_BN_BLINDING_CONVERT,BN_R_NOT_INITIALIZED); |
| 120 | return(0); | 122 | return(0); |
| 121 | } | 123 | } |
| 122 | return(BN_mod_mul(n,n,b->A,b->mod,ctx)); | 124 | return(BN_mod_mul(n,n,b->A,b->mod,ctx)); |
| 123 | } | 125 | } |
| 124 | 126 | ||
| 125 | int BN_BLINDING_invert(n,b,ctx) | 127 | int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx) |
| 126 | BIGNUM *n; | ||
| 127 | BN_BLINDING *b; | ||
| 128 | BN_CTX *ctx; | ||
| 129 | { | 128 | { |
| 130 | int ret; | 129 | int ret; |
| 130 | |||
| 131 | bn_check_top(n); | ||
| 131 | if ((b->A == NULL) || (b->Ai == NULL)) | 132 | if ((b->A == NULL) || (b->Ai == NULL)) |
| 132 | { | 133 | { |
| 133 | BNerr(BN_F_BN_BLINDING_INVERT,BN_R_NOT_INITALISED); | 134 | BNerr(BN_F_BN_BLINDING_INVERT,BN_R_NOT_INITIALIZED); |
| 134 | return(0); | 135 | return(0); |
| 135 | } | 136 | } |
| 136 | if ((ret=BN_mod_mul(n,n,b->Ai,b->mod,ctx)) >= 0) | 137 | if ((ret=BN_mod_mul(n,n,b->Ai,b->mod,ctx)) >= 0) |
