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

Side by Side Diff: mozilla/security/nss/lib/freebl/sha512.c

Issue 12207073: Update to NSS 3.14.3 Beta 1 for the TLS CBC constant-time (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/nss/
Patch Set: Remove unrelated WIN64 changes from nss.gyp Created 7 years, 10 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 | « mozilla/security/nss/lib/freebl/rawhash.c ('k') | mozilla/security/nss/lib/freebl/sha_fast.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * sha512.c - implementation of SHA224, SHA256, SHA384 and SHA512 2 * sha512.c - implementation of SHA224, SHA256, SHA384 and SHA512
3 * 3 *
4 * This Source Code Form is subject to the terms of the Mozilla Public 4 * This Source Code Form is subject to the terms of the Mozilla Public
5 * License, v. 2.0. If a copy of the MPL was not distributed with this 5 * License, v. 2.0. If a copy of the MPL was not distributed with this
6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 /* $Id: sha512.c,v 1.21 2012/07/27 20:00:39 wtc%google.com Exp $ */ 7 /* $Id: sha512.c,v 1.23 2013/02/06 00:41:13 wtc%google.com Exp $ */
8 8
9 #ifdef FREEBL_NO_DEPEND 9 #ifdef FREEBL_NO_DEPEND
10 #include "stubs.h" 10 #include "stubs.h"
11 #endif 11 #endif
12 12
13 #include "prcpucfg.h" 13 #include "prcpucfg.h"
14 #if defined(NSS_X86) || defined(SHA_NO_LONG_LONG) 14 #if defined(NSS_X86) || defined(SHA_NO_LONG_LONG)
15 #define NOUNROLL512 1 15 #define NOUNROLL512 1
16 #undef HAVE_LONG_LONG 16 #undef HAVE_LONG_LONG
17 #endif 17 #endif
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 BYTESWAP4(H[5]); 455 BYTESWAP4(H[5]);
456 BYTESWAP4(H[6]); 456 BYTESWAP4(H[6]);
457 BYTESWAP4(H[7]); 457 BYTESWAP4(H[7]);
458 #endif 458 #endif
459 padLen = PR_MIN(SHA256_LENGTH, maxDigestLen); 459 padLen = PR_MIN(SHA256_LENGTH, maxDigestLen);
460 memcpy(digest, H, padLen); 460 memcpy(digest, H, padLen);
461 if (digestLen) 461 if (digestLen)
462 *digestLen = padLen; 462 *digestLen = padLen;
463 } 463 }
464 464
465 void
466 SHA256_EndRaw(SHA256Context *ctx, unsigned char *digest,
467 unsigned int *digestLen, unsigned int maxDigestLen)
468 {
469 PRUint32 h[8];
470 unsigned int len;
471 #ifdef SWAP4MASK
472 PRUint32 t1;
473 #endif
474
475 memcpy(h, ctx->h, sizeof(h));
476
477 #if defined(IS_LITTLE_ENDIAN)
478 BYTESWAP4(h[0]);
479 BYTESWAP4(h[1]);
480 BYTESWAP4(h[2]);
481 BYTESWAP4(h[3]);
482 BYTESWAP4(h[4]);
483 BYTESWAP4(h[5]);
484 BYTESWAP4(h[6]);
485 BYTESWAP4(h[7]);
486 #endif
487
488 len = PR_MIN(SHA256_LENGTH, maxDigestLen);
489 memcpy(digest, h, len);
490 if (digestLen)
491 *digestLen = len;
492 }
493
465 SECStatus 494 SECStatus
466 SHA256_HashBuf(unsigned char *dest, const unsigned char *src, 495 SHA256_HashBuf(unsigned char *dest, const unsigned char *src,
467 uint32 src_length) 496 uint32 src_length)
468 { 497 {
469 SHA256Context ctx; 498 SHA256Context ctx;
470 unsigned int outLen; 499 unsigned int outLen;
471 500
472 SHA256_Begin(&ctx); 501 SHA256_Begin(&ctx);
473 SHA256_Update(&ctx, src, src_length); 502 SHA256_Update(&ctx, src, src_length);
474 SHA256_End(&ctx, dest, &outLen, SHA256_LENGTH); 503 SHA256_End(&ctx, dest, &outLen, SHA256_LENGTH);
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
549 } 578 }
550 579
551 void 580 void
552 SHA224_End(SHA256Context *ctx, unsigned char *digest, 581 SHA224_End(SHA256Context *ctx, unsigned char *digest,
553 unsigned int *digestLen, unsigned int maxDigestLen) 582 unsigned int *digestLen, unsigned int maxDigestLen)
554 { 583 {
555 unsigned int maxLen = SHA_MIN(maxDigestLen, SHA224_LENGTH); 584 unsigned int maxLen = SHA_MIN(maxDigestLen, SHA224_LENGTH);
556 SHA256_End(ctx, digest, digestLen, maxLen); 585 SHA256_End(ctx, digest, digestLen, maxLen);
557 } 586 }
558 587
588 void
589 SHA224_EndRaw(SHA256Context *ctx, unsigned char *digest,
590 unsigned int *digestLen, unsigned int maxDigestLen)
591 {
592 unsigned int maxLen = SHA_MIN(maxDigestLen, SHA224_LENGTH);
593 SHA256_EndRaw(ctx, digest, digestLen, maxLen);
594 }
595
559 SECStatus 596 SECStatus
560 SHA224_HashBuf(unsigned char *dest, const unsigned char *src, 597 SHA224_HashBuf(unsigned char *dest, const unsigned char *src,
561 uint32 src_length) 598 uint32 src_length)
562 { 599 {
563 SHA256Context ctx; 600 SHA256Context ctx;
564 unsigned int outLen; 601 unsigned int outLen;
565 602
566 SHA224_Begin(&ctx); 603 SHA224_Begin(&ctx);
567 SHA256_Update(&ctx, src, src_length); 604 SHA256_Update(&ctx, src, src_length);
568 SHA256_End(&ctx, dest, &outLen, SHA224_LENGTH); 605 SHA256_End(&ctx, dest, &outLen, SHA224_LENGTH);
(...skipping 652 matching lines...) Expand 10 before | Expand all | Expand 10 after
1221 BYTESWAP8(H[5]); 1258 BYTESWAP8(H[5]);
1222 BYTESWAP8(H[6]); 1259 BYTESWAP8(H[6]);
1223 BYTESWAP8(H[7]); 1260 BYTESWAP8(H[7]);
1224 #endif 1261 #endif
1225 padLen = PR_MIN(SHA512_LENGTH, maxDigestLen); 1262 padLen = PR_MIN(SHA512_LENGTH, maxDigestLen);
1226 memcpy(digest, H, padLen); 1263 memcpy(digest, H, padLen);
1227 if (digestLen) 1264 if (digestLen)
1228 *digestLen = padLen; 1265 *digestLen = padLen;
1229 } 1266 }
1230 1267
1268 void
1269 SHA512_EndRaw(SHA512Context *ctx, unsigned char *digest,
1270 unsigned int *digestLen, unsigned int maxDigestLen)
1271 {
1272 #if defined(HAVE_LONG_LONG)
1273 PRUint64 t1;
1274 #else
1275 PRUint32 t1;
1276 #endif
1277 PRUint64 h[8];
1278 unsigned int len;
1279
1280 memcpy(h, ctx->h, sizeof(h));
1281
1282 #if defined(IS_LITTLE_ENDIAN)
1283 BYTESWAP8(h[0]);
1284 BYTESWAP8(h[1]);
1285 BYTESWAP8(h[2]);
1286 BYTESWAP8(h[3]);
1287 BYTESWAP8(h[4]);
1288 BYTESWAP8(h[5]);
1289 BYTESWAP8(h[6]);
1290 BYTESWAP8(h[7]);
1291 #endif
1292 len = PR_MIN(SHA512_LENGTH, maxDigestLen);
1293 memcpy(digest, h, len);
1294 if (digestLen)
1295 *digestLen = len;
1296 }
1297
1231 SECStatus 1298 SECStatus
1232 SHA512_HashBuf(unsigned char *dest, const unsigned char *src, 1299 SHA512_HashBuf(unsigned char *dest, const unsigned char *src,
1233 uint32 src_length) 1300 uint32 src_length)
1234 { 1301 {
1235 SHA512Context ctx; 1302 SHA512Context ctx;
1236 unsigned int outLen; 1303 unsigned int outLen;
1237 1304
1238 SHA512_Begin(&ctx); 1305 SHA512_Begin(&ctx);
1239 SHA512_Update(&ctx, src, src_length); 1306 SHA512_Update(&ctx, src, src_length);
1240 SHA512_End(&ctx, dest, &outLen, SHA512_LENGTH); 1307 SHA512_End(&ctx, dest, &outLen, SHA512_LENGTH);
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
1329 } 1396 }
1330 1397
1331 void 1398 void
1332 SHA384_End(SHA384Context *ctx, unsigned char *digest, 1399 SHA384_End(SHA384Context *ctx, unsigned char *digest,
1333 unsigned int *digestLen, unsigned int maxDigestLen) 1400 unsigned int *digestLen, unsigned int maxDigestLen)
1334 { 1401 {
1335 unsigned int maxLen = SHA_MIN(maxDigestLen, SHA384_LENGTH); 1402 unsigned int maxLen = SHA_MIN(maxDigestLen, SHA384_LENGTH);
1336 SHA512_End(ctx, digest, digestLen, maxLen); 1403 SHA512_End(ctx, digest, digestLen, maxLen);
1337 } 1404 }
1338 1405
1406 void
1407 SHA384_EndRaw(SHA384Context *ctx, unsigned char *digest,
1408 unsigned int *digestLen, unsigned int maxDigestLen)
1409 {
1410 unsigned int maxLen = SHA_MIN(maxDigestLen, SHA384_LENGTH);
1411 SHA512_EndRaw(ctx, digest, digestLen, maxLen);
1412 }
1413
1339 SECStatus 1414 SECStatus
1340 SHA384_HashBuf(unsigned char *dest, const unsigned char *src, 1415 SHA384_HashBuf(unsigned char *dest, const unsigned char *src,
1341 uint32 src_length) 1416 uint32 src_length)
1342 { 1417 {
1343 SHA512Context ctx; 1418 SHA512Context ctx;
1344 unsigned int outLen; 1419 unsigned int outLen;
1345 1420
1346 SHA384_Begin(&ctx); 1421 SHA384_Begin(&ctx);
1347 SHA512_Update(&ctx, src, src_length); 1422 SHA512_Update(&ctx, src, src_length);
1348 SHA512_End(&ctx, dest, &outLen, SHA384_LENGTH); 1423 SHA512_End(&ctx, dest, &outLen, SHA384_LENGTH);
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
1515 } 1590 }
1516 printf("done\n"); 1591 printf("done\n");
1517 } 1592 }
1518 return 0; 1593 return 0;
1519 } 1594 }
1520 1595
1521 void *PORT_Alloc(size_t len) { return malloc(len); } 1596 void *PORT_Alloc(size_t len) { return malloc(len); }
1522 void PORT_Free(void *ptr) { free(ptr); } 1597 void PORT_Free(void *ptr) { free(ptr); }
1523 void PORT_ZFree(void *ptr, size_t len) { memset(ptr, 0, len); free(ptr); } 1598 void PORT_ZFree(void *ptr, size_t len) { memset(ptr, 0, len); free(ptr); }
1524 #endif 1599 #endif
OLDNEW
« no previous file with comments | « mozilla/security/nss/lib/freebl/rawhash.c ('k') | mozilla/security/nss/lib/freebl/sha_fast.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698