summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjca <>2013-12-20 02:17:26 +0000
committerjca <>2013-12-20 02:17:26 +0000
commit2b799dc44b041e21f8e5646502eef97621469bfd (patch)
tree09c176b77401c9648b992683b6b7339912e8c094
parent4e3fa45a631a6e86718bd97bbd9a30da083ab4bd (diff)
downloadopenbsd-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.c9
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
234void SHA512_Transform (SHA512_CTX *c, const unsigned char *data) 234void 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
237unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md) 244unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md)
238 { 245 {