Some compilers are just too whiny. Nothing makes Microsoft compiler
authorAndy Polyakov <appro@openssl.org>
Sun, 25 Jul 2004 17:00:56 +0000 (17:00 +0000)
committerAndy Polyakov <appro@openssl.org>
Sun, 25 Jul 2004 17:00:56 +0000 (17:00 +0000)
stop complaining about loss of precision, but explicit cast.

crypto/sha/sha512.c

index 5f7a8dee6d43b9a017a8d2923e28552ba3058fc1..b328fe71d4d7ea69e6a54110f020fe27a1233bb8 100644 (file)
@@ -104,22 +104,22 @@ int SHA512_Final (unsigned char *md, SHA512_CTX *c)
        c->u.d[SHA_LBLOCK-2] = c->Nh;
        c->u.d[SHA_LBLOCK-1] = c->Nl;
 #else
-       p[sizeof(c->u)-1]  = (c->Nl)&0xFF;
-       p[sizeof(c->u)-2]  = (c->Nl>>8)&0xFF;
-       p[sizeof(c->u)-3]  = (c->Nl>>16)&0xFF;
-       p[sizeof(c->u)-4]  = (c->Nl>>24)&0xFF;
-       p[sizeof(c->u)-5]  = (c->Nl>>32)&0xFF;
-       p[sizeof(c->u)-6]  = (c->Nl>>40)&0xFF;
-       p[sizeof(c->u)-7]  = (c->Nl>>48)&0xFF;
-       p[sizeof(c->u)-8]  = (c->Nl>>56)&0xFF;
-       p[sizeof(c->u)-9]  = (c->Nh)&0xFF;
-       p[sizeof(c->u)-10] = (c->Nh>>8)&0xFF;
-       p[sizeof(c->u)-11] = (c->Nh>>16)&0xFF;
-       p[sizeof(c->u)-12] = (c->Nh>>24)&0xFF;
-       p[sizeof(c->u)-13] = (c->Nh>>32)&0xFF;
-       p[sizeof(c->u)-14] = (c->Nh>>40)&0xFF;
-       p[sizeof(c->u)-15] = (c->Nh>>48)&0xFF;
-       p[sizeof(c->u)-16] = (c->Nh>>56)&0xFF;
+       p[sizeof(c->u)-1]  = (unsigned char)(c->Nl);
+       p[sizeof(c->u)-2]  = (unsigned char)(c->Nl>>8);
+       p[sizeof(c->u)-3]  = (unsigned char)(c->Nl>>16);
+       p[sizeof(c->u)-4]  = (unsigned char)(c->Nl>>24);
+       p[sizeof(c->u)-5]  = (unsigned char)(c->Nl>>32);
+       p[sizeof(c->u)-6]  = (unsigned char)(c->Nl>>40);
+       p[sizeof(c->u)-7]  = (unsigned char)(c->Nl>>48);
+       p[sizeof(c->u)-8]  = (unsigned char)(c->Nl>>56);
+       p[sizeof(c->u)-9]  = (unsigned char)(c->Nh);
+       p[sizeof(c->u)-10] = (unsigned char)(c->Nh>>8);
+       p[sizeof(c->u)-11] = (unsigned char)(c->Nh>>16);
+       p[sizeof(c->u)-12] = (unsigned char)(c->Nh>>24);
+       p[sizeof(c->u)-13] = (unsigned char)(c->Nh>>32);
+       p[sizeof(c->u)-14] = (unsigned char)(c->Nh>>40);
+       p[sizeof(c->u)-15] = (unsigned char)(c->Nh>>48);
+       p[sizeof(c->u)-16] = (unsigned char)(c->Nh>>56);
 #endif
 
        sha512_block (c,p,1);
@@ -134,10 +134,14 @@ int SHA512_Final (unsigned char *md, SHA512_CTX *c)
                                {
                                SHA_LONG64 t = c->h[n];
 
-                               *(md++) = (t>>56)&0xFF; *(md++) = (t>>48)&0xFF;
-                               *(md++) = (t>>40)&0xFF; *(md++) = (t>>32)&0xFF;
-                               *(md++) = (t>>24)&0xFF; *(md++) = (t>>16)&0xFF;
-                               *(md++) = (t>>8)&0xFF;  *(md++) = (t)&0xFF;
+                               *(md++) = (unsigned char)(t>>56);
+                               *(md++) = (unsigned char)(t>>48);
+                               *(md++) = (unsigned char)(t>>40);
+                               *(md++) = (unsigned char)(t>>32);
+                               *(md++) = (unsigned char)(t>>24);
+                               *(md++) = (unsigned char)(t>>16);
+                               *(md++) = (unsigned char)(t>>8);
+                               *(md++) = (unsigned char)(t);
                                }
                        break;
                case SHA512_DIGEST_LENGTH:
@@ -145,10 +149,14 @@ int SHA512_Final (unsigned char *md, SHA512_CTX *c)
                                {
                                SHA_LONG64 t = c->h[n];
 
-                               *(md++) = (t>>56)&0xFF; *(md++) = (t>>48)&0xFF;
-                               *(md++) = (t>>40)&0xFF; *(md++) = (t>>32)&0xFF;
-                               *(md++) = (t>>24)&0xFF; *(md++) = (t>>16)&0xFF;
-                               *(md++) = (t>>8)&0xFF;  *(md++) = (t)&0xFF;
+                               *(md++) = (unsigned char)(t>>56);
+                               *(md++) = (unsigned char)(t>>48);
+                               *(md++) = (unsigned char)(t>>40);
+                               *(md++) = (unsigned char)(t>>32);
+                               *(md++) = (unsigned char)(t>>24);
+                               *(md++) = (unsigned char)(t>>16);
+                               *(md++) = (unsigned char)(t>>8);
+                               *(md++) = (unsigned char)(t);
                                }
                        break;
                /* ... as well as make sure md_len is not abused. */