OPENSSL_cleanse(b, sizeof(b));
/* Calculate: B = (kv + g^b) % N */
+ s->srp_ctx.B = SRP_Calc_B_ex(s->srp_ctx.b, s->srp_ctx.N, s->srp_ctx.g,
+ s->srp_ctx.v, sctx->libctx, sctx->propq);
+ if (s->srp_ctx.B == NULL) {
+ BN_clear_free(s->srp_ctx.b);
+ s->srp_ctx.b = NULL;
+ return SSL3_AL_FATAL;
+ }
- return ((s->srp_ctx.B = SRP_Calc_B_ex(s->srp_ctx.b, s->srp_ctx.N, s->srp_ctx.g,
- s->srp_ctx.v, sctx->libctx, sctx->propq))
- != NULL)
- ? SSL_ERROR_NONE
- : SSL3_AL_FATAL;
+ return SSL_ERROR_NONE;
}
int SSL_srp_server_param_with_username(SSL *s, int *ad)