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

Side by Side Diff: openssl/crypto/ec/ecp_nist.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/ec/eck_prn.c ('k') | openssl/crypto/ec/ecp_smpl.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/ec/ecp_nist.c */ 1 /* crypto/ec/ecp_nist.c */
2 /* 2 /*
3 * Written by Nils Larsch for the OpenSSL project. 3 * Written by Nils Larsch for the OpenSSL project.
4 */ 4 */
5 /* ==================================================================== 5 /* ====================================================================
6 * Copyright (c) 1998-2003 The OpenSSL Project. All rights reserved. 6 * Copyright (c) 1998-2003 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 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 ec_GFp_nist_field_mul, 105 ec_GFp_nist_field_mul,
106 ec_GFp_nist_field_sqr, 106 ec_GFp_nist_field_sqr,
107 0 /* field_div */, 107 0 /* field_div */,
108 0 /* field_encode */, 108 0 /* field_encode */,
109 0 /* field_decode */, 109 0 /* field_decode */,
110 0 /* field_set_to_one */ }; 110 0 /* field_set_to_one */ };
111 111
112 return &ret; 112 return &ret;
113 } 113 }
114 114
115 #if BN_BITS2 == 64
116 #define NO_32_BIT_TYPE
117 #endif
118
119 int ec_GFp_nist_group_copy(EC_GROUP *dest, const EC_GROUP *src) 115 int ec_GFp_nist_group_copy(EC_GROUP *dest, const EC_GROUP *src)
120 { 116 {
121 dest->field_mod_func = src->field_mod_func; 117 dest->field_mod_func = src->field_mod_func;
122 118
123 return ec_GFp_simple_group_copy(dest, src); 119 return ec_GFp_simple_group_copy(dest, src);
124 } 120 }
125 121
126 int ec_GFp_nist_group_set_curve(EC_GROUP *group, const BIGNUM *p, 122 int ec_GFp_nist_group_set_curve(EC_GROUP *group, const BIGNUM *p,
127 const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx) 123 const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
128 { 124 {
129 int ret = 0; 125 int ret = 0;
130 BN_CTX *new_ctx = NULL; 126 BN_CTX *new_ctx = NULL;
131 BIGNUM *tmp_bn; 127 BIGNUM *tmp_bn;
132 128
133 if (ctx == NULL) 129 if (ctx == NULL)
134 if ((ctx = new_ctx = BN_CTX_new()) == NULL) return 0; 130 if ((ctx = new_ctx = BN_CTX_new()) == NULL) return 0;
135 131
136 BN_CTX_start(ctx); 132 BN_CTX_start(ctx);
137 if ((tmp_bn = BN_CTX_get(ctx)) == NULL) goto err; 133 if ((tmp_bn = BN_CTX_get(ctx)) == NULL) goto err;
138 134
139 if (BN_ucmp(BN_get0_nist_prime_192(), p) == 0) 135 if (BN_ucmp(BN_get0_nist_prime_192(), p) == 0)
140 group->field_mod_func = BN_nist_mod_192; 136 group->field_mod_func = BN_nist_mod_192;
141 else if (BN_ucmp(BN_get0_nist_prime_224(), p) == 0) 137 else if (BN_ucmp(BN_get0_nist_prime_224(), p) == 0)
142 {
143 #ifndef NO_32_BIT_TYPE
144 group->field_mod_func = BN_nist_mod_224; 138 group->field_mod_func = BN_nist_mod_224;
145 #else
146 ECerr(EC_F_EC_GFP_NIST_GROUP_SET_CURVE, EC_R_NOT_A_SUPPORTED_NIS T_PRIME);
147 goto err;
148 #endif
149 }
150 else if (BN_ucmp(BN_get0_nist_prime_256(), p) == 0) 139 else if (BN_ucmp(BN_get0_nist_prime_256(), p) == 0)
151 {
152 #ifndef NO_32_BIT_TYPE
153 group->field_mod_func = BN_nist_mod_256; 140 group->field_mod_func = BN_nist_mod_256;
154 #else
155 ECerr(EC_F_EC_GFP_NIST_GROUP_SET_CURVE, EC_R_NOT_A_SUPPORTED_NIS T_PRIME);
156 goto err;
157 #endif
158 }
159 else if (BN_ucmp(BN_get0_nist_prime_384(), p) == 0) 141 else if (BN_ucmp(BN_get0_nist_prime_384(), p) == 0)
160 {
161 #ifndef NO_32_BIT_TYPE
162 group->field_mod_func = BN_nist_mod_384; 142 group->field_mod_func = BN_nist_mod_384;
163 #else
164 ECerr(EC_F_EC_GFP_NIST_GROUP_SET_CURVE, EC_R_NOT_A_SUPPORTED_NIS T_PRIME);
165 goto err;
166 #endif
167 }
168 else if (BN_ucmp(BN_get0_nist_prime_521(), p) == 0) 143 else if (BN_ucmp(BN_get0_nist_prime_521(), p) == 0)
169 /* this one works in the NO_32_BIT_TYPE case */
170 group->field_mod_func = BN_nist_mod_521; 144 group->field_mod_func = BN_nist_mod_521;
171 else 145 else
172 { 146 {
173 ECerr(EC_F_EC_GFP_NIST_GROUP_SET_CURVE, EC_R_NOT_A_NIST_PRIME); 147 ECerr(EC_F_EC_GFP_NIST_GROUP_SET_CURVE, EC_R_NOT_A_NIST_PRIME);
174 goto err; 148 goto err;
175 } 149 }
176 150
177 ret = ec_GFp_simple_group_set_curve(group, p, a, b, ctx); 151 ret = ec_GFp_simple_group_set_curve(group, p, a, b, ctx);
178 152
179 err: 153 err:
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 if (!BN_sqr(r, a, ctx)) goto err; 201 if (!BN_sqr(r, a, ctx)) goto err;
228 if (!group->field_mod_func(r, r, &group->field, ctx)) 202 if (!group->field_mod_func(r, r, &group->field, ctx))
229 goto err; 203 goto err;
230 204
231 ret=1; 205 ret=1;
232 err: 206 err:
233 if (ctx_new) 207 if (ctx_new)
234 BN_CTX_free(ctx_new); 208 BN_CTX_free(ctx_new);
235 return ret; 209 return ret;
236 } 210 }
OLDNEW
« no previous file with comments | « openssl/crypto/ec/eck_prn.c ('k') | openssl/crypto/ec/ecp_smpl.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698