sha1-x86_64.pl: fix win64-specific typos and add masm support [from HEAD].
[oweals/openssl.git] / crypto / sha / sha512.c
index 86115d890d5e563fccd3877189294d29a81f8232..8b13e6ca1871ef09989b71e00be5cc0258e15a6e 100644 (file)
@@ -59,7 +59,7 @@ const char SHA512_version[]="SHA-512" OPENSSL_VERSION_PTEXT;
 #define SHA512_BLOCK_CAN_MANAGE_UNALIGNED_DATA
 #endif
 
-int SHA384_Init (SHA512_CTX *c)
+fips_md_init_ctx(SHA384, SHA512)
        {
 #if defined(SHA512_ASM) && (defined(__arm__) || defined(__arm))
        /* maintain dword order required by assembler module */
@@ -88,7 +88,7 @@ int SHA384_Init (SHA512_CTX *c)
         return 1;
        }
 
-int SHA512_Init (SHA512_CTX *c)
+fips_md_init(SHA512)
        {
 #if defined(SHA512_ASM) && (defined(__arm__) || defined(__arm))
        /* maintain dword order required by assembler module */
@@ -240,7 +240,7 @@ int SHA512_Update (SHA512_CTX *c, const void *_data, size_t len)
 
                if (len < n)
                        {
-                       memcpy (p+c->num,data,len), c->num += len;
+                       memcpy (p+c->num,data,len), c->num += (unsigned int)len;
                        return 1;
                        }
                else    {
@@ -380,7 +380,7 @@ static const SHA_LONG64 K512[80] = {
                                ((SHA_LONG64)hi)<<32|lo;        })
 #   endif
 #  elif (defined(_ARCH_PPC) && defined(__64BIT__)) || defined(_ARCH_PPC64)
-#   define ROTR(a,n)   ({ unsigned long ret;           \
+#   define ROTR(a,n)   ({ SHA_LONG64 ret;              \
                                asm ("rotrdi %0,%1,%2"  \
                                : "=r"(ret)             \
                                : "r"(a),"K"(n)); ret;  })
@@ -632,4 +632,10 @@ static void sha512_block_data_order (SHA512_CTX *ctx, const void *in, size_t num
 
 #endif /* SHA512_ASM */
 
-#endif /* OPENSSL_NO_SHA512 */
+#else /* !OPENSSL_NO_SHA512 */
+
+#if defined(PEDANTIC) || defined(__DECC) || defined(OPENSSL_SYS_MACOSX)
+static void *dummy=&dummy;
+#endif
+
+#endif /* !OPENSSL_NO_SHA512 */