diff options
Diffstat (limited to 'src/lib/libcrypto/ecdh')
-rw-r--r-- | src/lib/libcrypto/ecdh/ech_key.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/lib/libcrypto/ecdh/ech_key.c b/src/lib/libcrypto/ecdh/ech_key.c index 7202c497cf..e695b0b9ad 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.4 2015/09/13 12:27:14 jsing Exp $ */ | 1 | /* $OpenBSD: ech_key.c,v 1.5 2015/09/13 14:11:57 jsing Exp $ */ |
2 | /* ==================================================================== | 2 | /* ==================================================================== |
3 | * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. | 3 | * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. |
4 | * | 4 | * |
@@ -162,7 +162,7 @@ ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, | |||
162 | ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ERR_R_INTERNAL_ERROR); | 162 | ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ERR_R_INTERNAL_ERROR); |
163 | goto err; | 163 | goto err; |
164 | } | 164 | } |
165 | if (outlen < buflen) { | 165 | if (KDF == NULL && outlen < buflen) { |
166 | /* The resulting key would be truncated. */ | 166 | /* The resulting key would be truncated. */ |
167 | ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ECDH_R_KEY_TRUNCATION); | 167 | ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ECDH_R_KEY_TRUNCATION); |
168 | goto err; | 168 | goto err; |
@@ -178,14 +178,14 @@ ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, | |||
178 | goto err; | 178 | goto err; |
179 | } | 179 | } |
180 | 180 | ||
181 | if (KDF != 0) { | 181 | if (KDF != NULL) { |
182 | if (KDF(buf, buflen, out, &outlen) == NULL) { | 182 | if (KDF(buf, buflen, out, &outlen) == NULL) { |
183 | ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ECDH_R_KDF_FAILED); | 183 | ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ECDH_R_KDF_FAILED); |
184 | goto err; | 184 | goto err; |
185 | } | 185 | } |
186 | ret = outlen; | 186 | ret = outlen; |
187 | } else { | 187 | } else { |
188 | /* No KDF, just copy as much as we can and zero the rest. */ | 188 | /* No KDF, just copy out the key and zero the rest. */ |
189 | if (outlen > buflen) { | 189 | if (outlen > buflen) { |
190 | memset(out + buflen, 0, outlen - buflen); | 190 | memset(out + buflen, 0, outlen - buflen); |
191 | outlen = buflen; | 191 | outlen = buflen; |