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

Side by Side Diff: openssl/crypto/camellia/cmll_misc.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/camellia/cmll_locl.h ('k') | openssl/crypto/camellia/cmll_ofb.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/camellia/camellia_misc.c -*- mode:C; c-file-style: "eay" -*- */ 1 /* crypto/camellia/camellia_misc.c -*- mode:C; c-file-style: "eay" -*- */
2 /* ==================================================================== 2 /* ====================================================================
3 * Copyright (c) 2006 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 2006 The OpenSSL Project. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 45 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
46 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 46 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
47 * OF THE POSSIBILITY OF SUCH DAMAGE. 47 * OF THE POSSIBILITY OF SUCH DAMAGE.
48 * ==================================================================== 48 * ====================================================================
49 * 49 *
50 */ 50 */
51 51
52 #include <openssl/opensslv.h> 52 #include <openssl/opensslv.h>
53 #include <openssl/camellia.h> 53 #include <openssl/camellia.h>
54 #include "cmll_locl.h" 54 #include "cmll_locl.h"
55 #include <openssl/crypto.h>
56 #ifdef OPENSSL_FIPS
57 #include <openssl/fips.h>
58 #endif
59 55
60 const char CAMELLIA_version[]="CAMELLIA" OPENSSL_VERSION_PTEXT; 56 const char CAMELLIA_version[]="CAMELLIA" OPENSSL_VERSION_PTEXT;
61 57
62 int Camellia_set_key(const unsigned char *userKey, const int bits, 58 int Camellia_set_key(const unsigned char *userKey, const int bits,
63 CAMELLIA_KEY *key) 59 CAMELLIA_KEY *key)
64 #ifdef OPENSSL_FIPS
65 { 60 {
66 » if (FIPS_mode()) 61 » if(!userKey || !key)
67 » » FIPS_BAD_ABORT(CAMELLIA)
68 » return private_Camellia_set_key(userKey, bits, key);
69 » }
70 int private_Camellia_set_key(const unsigned char *userKey, const int bits,
71 » CAMELLIA_KEY *key)
72 #endif
73 » {
74 » if (!userKey || !key)
75 » » {
76 return -1; 62 return -1;
77 » » } 63 » if(bits != 128 && bits != 192 && bits != 256)
78 »
79 » switch(bits)
80 » » {
81 » case 128:
82 » » camellia_setup128(userKey, (unsigned int *)key->rd_key);
83 » » key->enc = camellia_encrypt128;
84 » » key->dec = camellia_decrypt128;
85 » » break;
86 » case 192:
87 » » camellia_setup192(userKey, (unsigned int *)key->rd_key);
88 » » key->enc = camellia_encrypt256;
89 » » key->dec = camellia_decrypt256;
90 » » break;
91 » case 256:
92 » » camellia_setup256(userKey, (unsigned int *)key->rd_key);
93 » » key->enc = camellia_encrypt256;
94 » » key->dec = camellia_decrypt256;
95 » » break;
96 » default:
97 return -2; 64 return -2;
98 » » } 65 » key->grand_rounds = Camellia_Ekeygen(bits , userKey, key->u.rd_key);
99 »
100 » key->bitLength = bits;
101 return 0; 66 return 0;
102 } 67 }
103 68
104 void Camellia_encrypt(const unsigned char *in, unsigned char *out, 69 void Camellia_encrypt(const unsigned char *in, unsigned char *out,
105 const CAMELLIA_KEY *key) 70 const CAMELLIA_KEY *key)
106 { 71 {
107 » u32 tmp[CAMELLIA_BLOCK_SIZE/sizeof(u32)]; 72 » Camellia_EncryptBlock_Rounds(key->grand_rounds, in , key->u.rd_key , out );
108 » const union { long one; char little; } camellia_endian = {1};
109
110 » memcpy(tmp, in, CAMELLIA_BLOCK_SIZE);
111 » if (camellia_endian.little) SWAP4WORD(tmp);
112 » key->enc(key->rd_key, tmp);
113 » if (camellia_endian.little) SWAP4WORD(tmp);
114 » memcpy(out, tmp, CAMELLIA_BLOCK_SIZE);
115 } 73 }
116 74
117 void Camellia_decrypt(const unsigned char *in, unsigned char *out, 75 void Camellia_decrypt(const unsigned char *in, unsigned char *out,
118 const CAMELLIA_KEY *key) 76 const CAMELLIA_KEY *key)
119 { 77 {
120 » u32 tmp[CAMELLIA_BLOCK_SIZE/sizeof(u32)]; 78 » Camellia_DecryptBlock_Rounds(key->grand_rounds, in , key->u.rd_key , out );
121 » const union { long one; char little; } camellia_endian = {1};
122
123 » memcpy(tmp, in, CAMELLIA_BLOCK_SIZE);
124 » if (camellia_endian.little) SWAP4WORD(tmp);
125 » key->dec(key->rd_key, tmp);
126 » if (camellia_endian.little) SWAP4WORD(tmp);
127 » memcpy(out, tmp, CAMELLIA_BLOCK_SIZE);
128 } 79 }
129
OLDNEW
« no previous file with comments | « openssl/crypto/camellia/cmll_locl.h ('k') | openssl/crypto/camellia/cmll_ofb.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698