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

Side by Side Diff: nss/lib/pkcs7/p7local.c

Issue 1504923011: Update NSS to 3.21 RTM and NSPR to 4.11 RTM (Closed) Base URL: http://src.chromium.org/svn/trunk/deps/third_party/nss
Patch Set: Created 5 years 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
OLDNEW
1 /* This Source Code Form is subject to the terms of the Mozilla Public 1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this 2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 4
5 /* 5 /*
6 * Support routines for PKCS7 implementation, none of which are exported. 6 * Support routines for PKCS7 implementation, none of which are exported.
7 * This file should only contain things that are needed by both the 7 * This file should only contain things that are needed by both the
8 * encoding/creation side *and* the decoding/decryption side. Anything 8 * encoding/creation side *and* the decoding/decryption side. Anything
9 * else should be static routines in the appropriate file. 9 * else should be static routines in the appropriate file.
10 */ 10 */
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 196
197 /* 197 /*
198 * These are placed after the CreateContextBySymKey() because some 198 * These are placed after the CreateContextBySymKey() because some
199 * mechanisms have to generate their IVs from their card (i.e. FORTEZZA). 199 * mechanisms have to generate their IVs from their card (i.e. FORTEZZA).
200 * Don't move it from here. 200 * Don't move it from here.
201 */ 201 */
202 if (needToEncodeAlgid) { 202 if (needToEncodeAlgid) {
203 rv = PK11_ParamToAlgid(algtag,param,poolp,algid); 203 rv = PK11_ParamToAlgid(algtag,param,poolp,algid);
204 if(rv != SECSuccess) { 204 if(rv != SECSuccess) {
205 PORT_Free (result); 205 PORT_Free (result);
206 SECITEM_FreeItem(param,PR_TRUE); 206 » SECITEM_FreeItem(param,PR_TRUE);
207 » PK11_DestroyContext(ciphercx, PR_TRUE);
207 return NULL; 208 return NULL;
208 } 209 }
209 } 210 }
210 SECITEM_FreeItem(param,PR_TRUE); 211 SECITEM_FreeItem(param,PR_TRUE);
211 212
212 result->cx = ciphercx; 213 result->cx = ciphercx;
213 result->doit = (sec_pkcs7_cipher_function) PK11_CipherOp; 214 result->doit = (sec_pkcs7_cipher_function) PK11_CipherOp;
214 result->destroy = (sec_pkcs7_cipher_destroy) PK11_DestroyContext; 215 result->destroy = (sec_pkcs7_cipher_destroy) PK11_DestroyContext;
215 result->encrypt = PR_TRUE; 216 result->encrypt = PR_TRUE;
216 result->pending_count = 0; 217 result->pending_count = 0;
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 * the same as the length of the padding, and that all data is padded. 391 * the same as the length of the padding, and that all data is padded.
391 * (Even data that starts out with an exact multiple of blocks gets 392 * (Even data that starts out with an exact multiple of blocks gets
392 * added to it another block, all of which is padding.) 393 * added to it another block, all of which is padding.)
393 */ 394 */
394 SECStatus 395 SECStatus
395 sec_PKCS7Decrypt (sec_PKCS7CipherObject *obj, unsigned char *output, 396 sec_PKCS7Decrypt (sec_PKCS7CipherObject *obj, unsigned char *output,
396 unsigned int *output_len_p, unsigned int max_output_len, 397 unsigned int *output_len_p, unsigned int max_output_len,
397 const unsigned char *input, unsigned int input_len, 398 const unsigned char *input, unsigned int input_len,
398 PRBool final) 399 PRBool final)
399 { 400 {
400 int blocks, bsize, pcount, padsize; 401 unsigned int blocks, bsize, pcount, padsize;
401 unsigned int max_needed, ifraglen, ofraglen, output_len; 402 unsigned int max_needed, ifraglen, ofraglen, output_len;
402 unsigned char *pbuf; 403 unsigned char *pbuf;
403 SECStatus rv; 404 SECStatus rv;
404 405
405 PORT_Assert (! obj->encrypt); 406 PORT_Assert (! obj->encrypt);
406 407
407 /* 408 /*
408 * Check that we have enough room for the output. Our caller should 409 * Check that we have enough room for the output. Our caller should
409 * already handle this; failure is really an internal error (i.e. bug). 410 * already handle this; failure is really an internal error (i.e. bug).
410 */ 411 */
(...skipping 899 matching lines...) Expand 10 before | Expand all | Expand 10 after
1310 theTemplate = SEC_PointerToPKCS7EncryptedDataTemplate; 1311 theTemplate = SEC_PointerToPKCS7EncryptedDataTemplate;
1311 break; 1312 break;
1312 } 1313 }
1313 return theTemplate; 1314 return theTemplate;
1314 } 1315 }
1315 1316
1316 /* 1317 /*
1317 * End of templates. Do not add stuff after this; put new code 1318 * End of templates. Do not add stuff after this; put new code
1318 * up above the start of the template definitions. 1319 * up above the start of the template definitions.
1319 */ 1320 */
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698