forked from sheetjs/sheetjs
SheetJS
ab2ecebac9
- basic support for parsing BIFF2-4 - basic support for writing BIFF2 - cleaned up some bad substr uses for IE6 compatibility - added flow type annotations for xlsx.flow.js - added numerous null guards (fixes #255 h/t @martinheidegger) - README cleanup (fixes #539 h/t @oliversalzburg) - pin jszip to local version (closes #408 h/t @limouri) bower issues: | id | author | comment | |-----:|:------------------|:------------------------------------------| | #254 | @kkirsche | fixes #254 by removing version from json | | #165 | @vincentcialdella | fixes #165 by changing default script | | #180 | @owencraig | fixes #180 by using xlsx.core.min.js | format issues: | id | author | comment | |-----:|:------------------|:------------------------------------------| | #271 | @morstaine | fixes #271 by reworking related parse fns | | #504 | @JanSchuermannPH | fixes #504 detect FullPaths h/t @Mithgol | | #508 | @basma-emad | fixes #508 offending file used `x:` NS |
35 lines
957 B
JavaScript
35 lines
957 B
JavaScript
var OFFCRYPTO = {};
|
|
var make_offcrypto = function(O, _crypto) {
|
|
var crypto;
|
|
if(typeof _crypto !== 'undefined') crypto = _crypto;
|
|
else if(typeof require !== 'undefined') {
|
|
try { crypto = require('cry'+'pto'); }
|
|
catch(e) { crypto = null; }
|
|
}
|
|
|
|
O.rc4 = function(key, data) {
|
|
var S = new Array(256);
|
|
var c = 0, i = 0, j = 0, t = 0;
|
|
for(i = 0; i != 256; ++i) S[i] = i;
|
|
for(i = 0; i != 256; ++i) {
|
|
j = (j + S[i] + (key[i%key.length]).charCodeAt(0))&255;
|
|
t = S[i]; S[i] = S[j]; S[j] = t;
|
|
}
|
|
i = j = 0; out = Buffer(data.length);
|
|
for(c = 0; c != data.length; ++c) {
|
|
i = (i + 1)&255;
|
|
j = (j + S[i])%256;
|
|
t = S[i]; S[i] = S[j]; S[j] = t;
|
|
out[c] = (data[c] ^ S[(S[i]+S[j])&255]);
|
|
}
|
|
return out;
|
|
};
|
|
|
|
O.md5 = function(hex) {
|
|
if(!crypto) throw new Error("Unsupported crypto");
|
|
return crypto.createHash('md5').update(hex).digest('hex');
|
|
};
|
|
};
|
|
make_offcrypto(OFFCRYPTO, typeof crypto !== "undefined" ? crypto : undefined);
|
|
|