diff options
Diffstat (limited to 'src/lib/libcrypto/ecdh')
-rw-r--r-- | src/lib/libcrypto/ecdh/ech_err.c | 6 | ||||
-rw-r--r-- | src/lib/libcrypto/ecdh/ech_key.c | 27 | ||||
-rw-r--r-- | src/lib/libcrypto/ecdh/ech_lib.c | 6 |
3 files changed, 17 insertions, 22 deletions
diff --git a/src/lib/libcrypto/ecdh/ech_err.c b/src/lib/libcrypto/ecdh/ech_err.c index afe5ff3af8..149c2a8505 100644 --- a/src/lib/libcrypto/ecdh/ech_err.c +++ b/src/lib/libcrypto/ecdh/ech_err.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ech_err.c,v 1.5 2015/09/13 11:49:44 jsing Exp $ */ | 1 | /* $OpenBSD: ech_err.c,v 1.6 2017/01/29 17:49:23 beck Exp $ */ |
2 | /* ==================================================================== | 2 | /* ==================================================================== |
3 | * Copyright (c) 1999-2011 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 1999-2011 The OpenSSL Project. All rights reserved. |
4 | * | 4 | * |
@@ -72,9 +72,7 @@ | |||
72 | #define ERR_REASON(reason) ERR_PACK(ERR_LIB_ECDH,0,reason) | 72 | #define ERR_REASON(reason) ERR_PACK(ERR_LIB_ECDH,0,reason) |
73 | 73 | ||
74 | static ERR_STRING_DATA ECDH_str_functs[]= { | 74 | static ERR_STRING_DATA ECDH_str_functs[]= { |
75 | {ERR_FUNC(ECDH_F_ECDH_CHECK), "ECDH_CHECK"}, | 75 | {ERR_FUNC(0xfff), "CRYPTO_internal"}, |
76 | {ERR_FUNC(ECDH_F_ECDH_COMPUTE_KEY), "ECDH_compute_key"}, | ||
77 | {ERR_FUNC(ECDH_F_ECDH_DATA_NEW_METHOD), "ECDH_DATA_new_method"}, | ||
78 | {0, NULL} | 76 | {0, NULL} |
79 | }; | 77 | }; |
80 | 78 | ||
diff --git a/src/lib/libcrypto/ecdh/ech_key.c b/src/lib/libcrypto/ecdh/ech_key.c index 33ee244499..5c2dc70b63 100644 --- a/src/lib/libcrypto/ecdh/ech_key.c +++ b/src/lib/libcrypto/ecdh/ech_key.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ech_key.c,v 1.6 2015/09/18 13:04:41 bcook Exp $ */ | 1 | /* $OpenBSD: ech_key.c,v 1.7 2017/01/29 17:49:23 beck Exp $ */ |
2 | /* ==================================================================== | 2 | /* ==================================================================== |
3 | * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. | 3 | * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. |
4 | * | 4 | * |
@@ -106,7 +106,7 @@ ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, | |||
106 | 106 | ||
107 | if (outlen > INT_MAX) { | 107 | if (outlen > INT_MAX) { |
108 | /* Sort of, anyway. */ | 108 | /* Sort of, anyway. */ |
109 | ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ERR_R_MALLOC_FAILURE); | 109 | ECDHerror(ERR_R_MALLOC_FAILURE); |
110 | return -1; | 110 | return -1; |
111 | } | 111 | } |
112 | 112 | ||
@@ -120,19 +120,18 @@ ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, | |||
120 | 120 | ||
121 | priv_key = EC_KEY_get0_private_key(ecdh); | 121 | priv_key = EC_KEY_get0_private_key(ecdh); |
122 | if (priv_key == NULL) { | 122 | if (priv_key == NULL) { |
123 | ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ECDH_R_NO_PRIVATE_VALUE); | 123 | ECDHerror(ECDH_R_NO_PRIVATE_VALUE); |
124 | goto err; | 124 | goto err; |
125 | } | 125 | } |
126 | 126 | ||
127 | group = EC_KEY_get0_group(ecdh); | 127 | group = EC_KEY_get0_group(ecdh); |
128 | if ((tmp = EC_POINT_new(group)) == NULL) { | 128 | if ((tmp = EC_POINT_new(group)) == NULL) { |
129 | ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ERR_R_MALLOC_FAILURE); | 129 | ECDHerror(ERR_R_MALLOC_FAILURE); |
130 | goto err; | 130 | goto err; |
131 | } | 131 | } |
132 | 132 | ||
133 | if (!EC_POINT_mul(group, tmp, NULL, pub_key, priv_key, ctx)) { | 133 | if (!EC_POINT_mul(group, tmp, NULL, pub_key, priv_key, ctx)) { |
134 | ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, | 134 | ECDHerror(ECDH_R_POINT_ARITHMETIC_FAILURE); |
135 | ECDH_R_POINT_ARITHMETIC_FAILURE); | ||
136 | goto err; | 135 | goto err; |
137 | } | 136 | } |
138 | 137 | ||
@@ -140,8 +139,7 @@ ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, | |||
140 | NID_X9_62_prime_field) { | 139 | NID_X9_62_prime_field) { |
141 | if (!EC_POINT_get_affine_coordinates_GFp(group, tmp, x, y, | 140 | if (!EC_POINT_get_affine_coordinates_GFp(group, tmp, x, y, |
142 | ctx)) { | 141 | ctx)) { |
143 | ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, | 142 | ECDHerror(ECDH_R_POINT_ARITHMETIC_FAILURE); |
144 | ECDH_R_POINT_ARITHMETIC_FAILURE); | ||
145 | goto err; | 143 | goto err; |
146 | } | 144 | } |
147 | } | 145 | } |
@@ -149,8 +147,7 @@ ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, | |||
149 | else { | 147 | else { |
150 | if (!EC_POINT_get_affine_coordinates_GF2m(group, tmp, x, y, | 148 | if (!EC_POINT_get_affine_coordinates_GF2m(group, tmp, x, y, |
151 | ctx)) { | 149 | ctx)) { |
152 | ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, | 150 | ECDHerror(ECDH_R_POINT_ARITHMETIC_FAILURE); |
153 | ECDH_R_POINT_ARITHMETIC_FAILURE); | ||
154 | goto err; | 151 | goto err; |
155 | } | 152 | } |
156 | } | 153 | } |
@@ -159,28 +156,28 @@ ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, | |||
159 | buflen = ECDH_size(ecdh); | 156 | buflen = ECDH_size(ecdh); |
160 | len = BN_num_bytes(x); | 157 | len = BN_num_bytes(x); |
161 | if (len > buflen) { | 158 | if (len > buflen) { |
162 | ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ERR_R_INTERNAL_ERROR); | 159 | ECDHerror(ERR_R_INTERNAL_ERROR); |
163 | goto err; | 160 | goto err; |
164 | } | 161 | } |
165 | if (KDF == NULL && outlen < buflen) { | 162 | if (KDF == NULL && outlen < buflen) { |
166 | /* The resulting key would be truncated. */ | 163 | /* The resulting key would be truncated. */ |
167 | ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ECDH_R_KEY_TRUNCATION); | 164 | ECDHerror(ECDH_R_KEY_TRUNCATION); |
168 | goto err; | 165 | goto err; |
169 | } | 166 | } |
170 | if ((buf = malloc(buflen)) == NULL) { | 167 | if ((buf = malloc(buflen)) == NULL) { |
171 | ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ERR_R_MALLOC_FAILURE); | 168 | ECDHerror(ERR_R_MALLOC_FAILURE); |
172 | goto err; | 169 | goto err; |
173 | } | 170 | } |
174 | 171 | ||
175 | memset(buf, 0, buflen - len); | 172 | memset(buf, 0, buflen - len); |
176 | if (len != (size_t)BN_bn2bin(x, buf + buflen - len)) { | 173 | if (len != (size_t)BN_bn2bin(x, buf + buflen - len)) { |
177 | ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ERR_R_BN_LIB); | 174 | ECDHerror(ERR_R_BN_LIB); |
178 | goto err; | 175 | goto err; |
179 | } | 176 | } |
180 | 177 | ||
181 | if (KDF != NULL) { | 178 | if (KDF != NULL) { |
182 | if (KDF(buf, buflen, out, &outlen) == NULL) { | 179 | if (KDF(buf, buflen, out, &outlen) == NULL) { |
183 | ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ECDH_R_KDF_FAILED); | 180 | ECDHerror(ECDH_R_KDF_FAILED); |
184 | goto err; | 181 | goto err; |
185 | } | 182 | } |
186 | ret = outlen; | 183 | ret = outlen; |
diff --git a/src/lib/libcrypto/ecdh/ech_lib.c b/src/lib/libcrypto/ecdh/ech_lib.c index bb70d2d95f..06e6a1ee22 100644 --- a/src/lib/libcrypto/ecdh/ech_lib.c +++ b/src/lib/libcrypto/ecdh/ech_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ech_lib.c,v 1.11 2015/09/13 12:03:07 jsing Exp $ */ | 1 | /* $OpenBSD: ech_lib.c,v 1.12 2017/01/29 17:49:23 beck Exp $ */ |
2 | /* ==================================================================== | 2 | /* ==================================================================== |
3 | * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. | 3 | * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. |
4 | * | 4 | * |
@@ -125,7 +125,7 @@ ECDH_DATA_new_method(ENGINE *engine) | |||
125 | 125 | ||
126 | ret = malloc(sizeof(ECDH_DATA)); | 126 | ret = malloc(sizeof(ECDH_DATA)); |
127 | if (ret == NULL) { | 127 | if (ret == NULL) { |
128 | ECDHerr(ECDH_F_ECDH_DATA_NEW_METHOD, ERR_R_MALLOC_FAILURE); | 128 | ECDHerror(ERR_R_MALLOC_FAILURE); |
129 | return (NULL); | 129 | return (NULL); |
130 | } | 130 | } |
131 | 131 | ||
@@ -139,7 +139,7 @@ ECDH_DATA_new_method(ENGINE *engine) | |||
139 | if (ret->engine) { | 139 | if (ret->engine) { |
140 | ret->meth = ENGINE_get_ECDH(ret->engine); | 140 | ret->meth = ENGINE_get_ECDH(ret->engine); |
141 | if (!ret->meth) { | 141 | if (!ret->meth) { |
142 | ECDHerr(ECDH_F_ECDH_DATA_NEW_METHOD, ERR_R_ENGINE_LIB); | 142 | ECDHerror(ERR_R_ENGINE_LIB); |
143 | ENGINE_finish(ret->engine); | 143 | ENGINE_finish(ret->engine); |
144 | free(ret); | 144 | free(ret); |
145 | return NULL; | 145 | return NULL; |