corrade-nucleus-nucleons – Blame information for rev 4

Subversion Repositories:
Rev:
Rev Author Line No. Line
2 office 1 /*
2 CryptoJS v3.1.2
3 code.google.com/p/crypto-js
4 (c) 2009-2013 by Jeff Mott. All rights reserved.
5 code.google.com/p/crypto-js/wiki/License
6 */
7 (function () {
8 // Shortcuts
9 var C = CryptoJS;
10 var C_lib = C.lib;
11 var WordArray = C_lib.WordArray;
12 var C_enc = C.enc;
13  
14 /**
15 * Base64 encoding strategy.
16 */
17 var Base64 = C_enc.Base64 = {
18 /**
19 * Converts a word array to a Base64 string.
20 *
21 * @param {WordArray} wordArray The word array.
22 *
23 * @return {string} The Base64 string.
24 *
25 * @static
26 *
27 * @example
28 *
29 * var base64String = CryptoJS.enc.Base64.stringify(wordArray);
30 */
31 stringify: function (wordArray) {
32 // Shortcuts
33 var words = wordArray.words;
34 var sigBytes = wordArray.sigBytes;
35 var map = this._map;
36  
37 // Clamp excess bits
38 wordArray.clamp();
39  
40 // Convert
41 var base64Chars = [];
42 for (var i = 0; i < sigBytes; i += 3) {
43 var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
44 var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;
45 var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;
46  
47 var triplet = (byte1 << 16) | (byte2 << 8) | byte3;
48  
49 for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {
50 base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));
51 }
52 }
53  
54 // Add padding
55 var paddingChar = map.charAt(64);
56 if (paddingChar) {
57 while (base64Chars.length % 4) {
58 base64Chars.push(paddingChar);
59 }
60 }
61  
62 return base64Chars.join('');
63 },
64  
65 /**
66 * Converts a Base64 string to a word array.
67 *
68 * @param {string} base64Str The Base64 string.
69 *
70 * @return {WordArray} The word array.
71 *
72 * @static
73 *
74 * @example
75 *
76 * var wordArray = CryptoJS.enc.Base64.parse(base64String);
77 */
78 parse: function (base64Str) {
79 // Shortcuts
80 var base64StrLength = base64Str.length;
81 var map = this._map;
82  
83 // Ignore padding
84 var paddingChar = map.charAt(64);
85 if (paddingChar) {
86 var paddingIndex = base64Str.indexOf(paddingChar);
87 if (paddingIndex != -1) {
88 base64StrLength = paddingIndex;
89 }
90 }
91  
92 // Convert
93 var words = [];
94 var nBytes = 0;
95 for (var i = 0; i < base64StrLength; i++) {
96 if (i % 4) {
97 var bits1 = map.indexOf(base64Str.charAt(i - 1)) << ((i % 4) * 2);
98 var bits2 = map.indexOf(base64Str.charAt(i)) >>> (6 - (i % 4) * 2);
99 words[nBytes >>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8);
100 nBytes++;
101 }
102 }
103  
104 return WordArray.create(words, nBytes);
105 },
106  
107 _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
108 };
109 }());