fix bug in AES_unwrap()
authorDr. Stephen Henson <steve@openssl.org>
Mon, 30 Aug 2010 23:57:03 +0000 (23:57 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Mon, 30 Aug 2010 23:57:03 +0000 (23:57 +0000)
crypto/aes/aes_wrap.c

index a9aebfe9b0c0496a133cf39c88863b202f685a16..e2d73d37cedae45a33a0a3b12eeac933a2448eca 100644 (file)
@@ -119,9 +119,9 @@ int AES_unwrap_key(AES_KEY *key, const unsigned char *iv,
                        A[7] ^= (unsigned char)(t & 0xff);
                        if (t > 0xff)   
                                {
-                               A[6] ^= (unsigned char)((t & 0xff) >> 8);
-                               A[5] ^= (unsigned char)((t & 0xff) >> 16);
-                               A[4] ^= (unsigned char)((t & 0xff) >> 24);
+                               A[6] ^= (unsigned char)((t >> 8) & 0xff);
+                               A[5] ^= (unsigned char)((t >> 16) & 0xff);
+                               A[4] ^= (unsigned char)((t >> 24) & 0xff);
                                }
                        memcpy(B + 8, R, 8);
                        AES_decrypt(B, B, key);