diff options
author | jca <> | 2013-12-20 02:17:26 +0000 |
---|---|---|
committer | jca <> | 2013-12-20 02:17:26 +0000 |
commit | 2b799dc44b041e21f8e5646502eef97621469bfd (patch) | |
tree | 09c176b77401c9648b992683b6b7339912e8c094 | |
parent | 4e3fa45a631a6e86718bd97bbd9a30da083ab4bd (diff) | |
download | openbsd-2b799dc44b041e21f8e5646502eef97621469bfd.tar.gz openbsd-2b799dc44b041e21f8e5646502eef97621469bfd.tar.bz2 openbsd-2b799dc44b041e21f8e5646502eef97621469bfd.zip |
MFC: Reliability fix for SHA384 SSL/TLS ciphers on strict alignment
architectures. ok miod@ djm@
-rw-r--r-- | src/lib/libssl/src/crypto/sha/sha512.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/lib/libssl/src/crypto/sha/sha512.c b/src/lib/libssl/src/crypto/sha/sha512.c index 50dd7dc744..8fc6f1890e 100644 --- a/src/lib/libssl/src/crypto/sha/sha512.c +++ b/src/lib/libssl/src/crypto/sha/sha512.c | |||
@@ -232,7 +232,14 @@ int SHA384_Update (SHA512_CTX *c, const void *data, size_t len) | |||
232 | { return SHA512_Update (c,data,len); } | 232 | { return SHA512_Update (c,data,len); } |
233 | 233 | ||
234 | void SHA512_Transform (SHA512_CTX *c, const unsigned char *data) | 234 | void SHA512_Transform (SHA512_CTX *c, const unsigned char *data) |
235 | { sha512_block_data_order (c,data,1); } | 235 | { |
236 | #ifndef SHA512_BLOCK_CAN_MANAGE_UNALIGNED_DATA | ||
237 | if ((size_t)data%sizeof(c->u.d[0]) != 0) | ||
238 | memcpy(c->u.p,data,sizeof(c->u.p)), | ||
239 | data = c->u.p; | ||
240 | #endif | ||
241 | sha512_block_data_order (c,data,1); | ||
242 | } | ||
236 | 243 | ||
237 | unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md) | 244 | unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md) |
238 | { | 245 | { |