diff options
author | djm@openbsd.org <djm@openbsd.org> | 2019-11-15 06:00:20 +0000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2019-11-17 09:44:43 +1100 |
commit | fd1a96490cef7f945a1b3b5df4e90c8a1070f425 (patch) | |
tree | c806a64cad5969ddf02459d4535d5e9cf1ae9e4b /sshbuf-getput-crypto.c | |
parent | 39b87104cdd47baf79ef77dc81de62cea07d119f (diff) |
upstream: remove most uses of BN_CTX
We weren't following the rules re BN_CTX_start/BN_CTX_end and the places
we were using it didn't benefit from its use anyway. ok dtucker@
OpenBSD-Commit-ID: ea9ba6c0d2e6f6adfe00b309a8f41842fe12fc7a
Diffstat (limited to 'sshbuf-getput-crypto.c')
-rw-r--r-- | sshbuf-getput-crypto.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/sshbuf-getput-crypto.c b/sshbuf-getput-crypto.c index ecbfa550f..2e61d3bcd 100644 --- a/sshbuf-getput-crypto.c +++ b/sshbuf-getput-crypto.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshbuf-getput-crypto.c,v 1.7 2019/01/21 09:54:11 djm Exp $ */ | 1 | /* $OpenBSD: sshbuf-getput-crypto.c,v 1.8 2019/11/15 06:00:20 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2011 Damien Miller | 3 | * Copyright (c) 2011 Damien Miller |
4 | * | 4 | * |
@@ -154,23 +154,17 @@ int | |||
154 | sshbuf_put_ec(struct sshbuf *buf, const EC_POINT *v, const EC_GROUP *g) | 154 | sshbuf_put_ec(struct sshbuf *buf, const EC_POINT *v, const EC_GROUP *g) |
155 | { | 155 | { |
156 | u_char d[SSHBUF_MAX_ECPOINT]; | 156 | u_char d[SSHBUF_MAX_ECPOINT]; |
157 | BN_CTX *bn_ctx; | ||
158 | size_t len; | 157 | size_t len; |
159 | int ret; | 158 | int ret; |
160 | 159 | ||
161 | if ((bn_ctx = BN_CTX_new()) == NULL) | ||
162 | return SSH_ERR_ALLOC_FAIL; | ||
163 | if ((len = EC_POINT_point2oct(g, v, POINT_CONVERSION_UNCOMPRESSED, | 160 | if ((len = EC_POINT_point2oct(g, v, POINT_CONVERSION_UNCOMPRESSED, |
164 | NULL, 0, bn_ctx)) > SSHBUF_MAX_ECPOINT) { | 161 | NULL, 0, NULL)) > SSHBUF_MAX_ECPOINT) { |
165 | BN_CTX_free(bn_ctx); | ||
166 | return SSH_ERR_INVALID_ARGUMENT; | 162 | return SSH_ERR_INVALID_ARGUMENT; |
167 | } | 163 | } |
168 | if (EC_POINT_point2oct(g, v, POINT_CONVERSION_UNCOMPRESSED, | 164 | if (EC_POINT_point2oct(g, v, POINT_CONVERSION_UNCOMPRESSED, |
169 | d, len, bn_ctx) != len) { | 165 | d, len, NULL) != len) { |
170 | BN_CTX_free(bn_ctx); | ||
171 | return SSH_ERR_INTERNAL_ERROR; /* Shouldn't happen */ | 166 | return SSH_ERR_INTERNAL_ERROR; /* Shouldn't happen */ |
172 | } | 167 | } |
173 | BN_CTX_free(bn_ctx); | ||
174 | ret = sshbuf_put_string(buf, d, len); | 168 | ret = sshbuf_put_string(buf, d, len); |
175 | explicit_bzero(d, len); | 169 | explicit_bzero(d, len); |
176 | return ret; | 170 | return ret; |