Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Side by Side Diff: openssl/crypto/aes/aes_wrap.c

Issue 9254031: Upgrade chrome's OpenSSL to same version Android ships with. (Closed) Base URL: http://src.chromium.org/svn/trunk/deps/third_party/openssl/
Patch Set: '' Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « openssl/crypto/aes/aes_ofb.c ('k') | openssl/crypto/aes/aes_x86core.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* crypto/aes/aes_wrap.c */ 1 /* crypto/aes/aes_wrap.c */
2 /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2 /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project. 3 * project.
4 */ 4 */
5 /* ==================================================================== 5 /* ====================================================================
6 * Copyright (c) 2008 The OpenSSL Project. All rights reserved. 6 * Copyright (c) 2008 The OpenSSL Project. All rights reserved.
7 * 7 *
8 * Redistribution and use in source and binary forms, with or without 8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions 9 * modification, are permitted provided that the following conditions
10 * are met: 10 * are met:
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 for (j = 0; j < 6; j++) 78 for (j = 0; j < 6; j++)
79 { 79 {
80 R = out + 8; 80 R = out + 8;
81 for (i = 0; i < inlen; i += 8, t++, R += 8) 81 for (i = 0; i < inlen; i += 8, t++, R += 8)
82 { 82 {
83 memcpy(B + 8, R, 8); 83 memcpy(B + 8, R, 8);
84 AES_encrypt(B, B, key); 84 AES_encrypt(B, B, key);
85 A[7] ^= (unsigned char)(t & 0xff); 85 A[7] ^= (unsigned char)(t & 0xff);
86 if (t > 0xff) 86 if (t > 0xff)
87 { 87 {
88 » » » » A[6] ^= (unsigned char)((t & 0xff) >> 8); 88 » » » » A[6] ^= (unsigned char)((t >> 8) & 0xff);
89 » » » » A[5] ^= (unsigned char)((t & 0xff) >> 16); 89 » » » » A[5] ^= (unsigned char)((t >> 16) & 0xff);
90 » » » » A[4] ^= (unsigned char)((t & 0xff) >> 24); 90 » » » » A[4] ^= (unsigned char)((t >> 24) & 0xff);
91 } 91 }
92 memcpy(R, B + 8, 8); 92 memcpy(R, B + 8, 8);
93 } 93 }
94 } 94 }
95 memcpy(out, A, 8); 95 memcpy(out, A, 8);
96 return inlen + 8; 96 return inlen + 8;
97 } 97 }
98 98
99 int AES_unwrap_key(AES_KEY *key, const unsigned char *iv, 99 int AES_unwrap_key(AES_KEY *key, const unsigned char *iv,
100 unsigned char *out, 100 unsigned char *out,
(...skipping 11 matching lines...) Expand all
112 memcpy(A, in, 8); 112 memcpy(A, in, 8);
113 memcpy(out, in + 8, inlen); 113 memcpy(out, in + 8, inlen);
114 for (j = 0; j < 6; j++) 114 for (j = 0; j < 6; j++)
115 { 115 {
116 R = out + inlen - 8; 116 R = out + inlen - 8;
117 for (i = 0; i < inlen; i += 8, t--, R -= 8) 117 for (i = 0; i < inlen; i += 8, t--, R -= 8)
118 { 118 {
119 A[7] ^= (unsigned char)(t & 0xff); 119 A[7] ^= (unsigned char)(t & 0xff);
120 if (t > 0xff) 120 if (t > 0xff)
121 { 121 {
122 » » » » A[6] ^= (unsigned char)((t & 0xff) >> 8); 122 » » » » A[6] ^= (unsigned char)((t >> 8) & 0xff);
123 » » » » A[5] ^= (unsigned char)((t & 0xff) >> 16); 123 » » » » A[5] ^= (unsigned char)((t >> 16) & 0xff);
124 » » » » A[4] ^= (unsigned char)((t & 0xff) >> 24); 124 » » » » A[4] ^= (unsigned char)((t >> 24) & 0xff);
125 } 125 }
126 memcpy(B + 8, R, 8); 126 memcpy(B + 8, R, 8);
127 AES_decrypt(B, B, key); 127 AES_decrypt(B, B, key);
128 memcpy(R, B + 8, 8); 128 memcpy(R, B + 8, 8);
129 } 129 }
130 } 130 }
131 if (!iv) 131 if (!iv)
132 iv = default_iv; 132 iv = default_iv;
133 if (memcmp(A, iv, 8)) 133 if (memcmp(A, iv, 8))
134 { 134 {
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 ret = AES_wrap_unwrap_test(kek, 192, NULL, e4, key, 24); 250 ret = AES_wrap_unwrap_test(kek, 192, NULL, e4, key, 24);
251 fprintf(stderr, "Key test result %d\n", ret); 251 fprintf(stderr, "Key test result %d\n", ret);
252 ret = AES_wrap_unwrap_test(kek, 256, NULL, e5, key, 24); 252 ret = AES_wrap_unwrap_test(kek, 256, NULL, e5, key, 24);
253 fprintf(stderr, "Key test result %d\n", ret); 253 fprintf(stderr, "Key test result %d\n", ret);
254 ret = AES_wrap_unwrap_test(kek, 256, NULL, e6, key, 32); 254 ret = AES_wrap_unwrap_test(kek, 256, NULL, e6, key, 32);
255 fprintf(stderr, "Key test result %d\n", ret); 255 fprintf(stderr, "Key test result %d\n", ret);
256 } 256 }
257 257
258 258
259 #endif 259 #endif
OLDNEW
« no previous file with comments | « openssl/crypto/aes/aes_ofb.c ('k') | openssl/crypto/aes/aes_x86core.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698