Browse Source

Merge pull request #6933 from brendandahl/faster-decrypt

Make type 1 font program decryption faster.
Tim van der Meij 9 years ago
parent
commit
02b161d432
  1. 16
      src/core/fonts.js

16
src/core/fonts.js

@ -3322,15 +3322,21 @@ var Type1Parser = (function Type1ParserClosure() { @@ -3322,15 +3322,21 @@ var Type1Parser = (function Type1ParserClosure() {
}
function decrypt(data, key, discardNumber) {
var r = key | 0, c1 = 52845, c2 = 22719;
var count = data.length;
if (discardNumber >= data.length) {
return new Uint8Array(0);
}
var r = key | 0, c1 = 52845, c2 = 22719, i, j;
for (i = 0; i < discardNumber; i++) {
r = ((data[i] + r) * c1 + c2) & ((1 << 16) - 1);
}
var count = data.length - discardNumber;
var decrypted = new Uint8Array(count);
for (var i = 0; i < count; i++) {
for (i = discardNumber, j = 0; j < count; i++, j++) {
var value = data[i];
decrypted[i] = value ^ (r >> 8);
decrypted[j] = value ^ (r >> 8);
r = ((value + r) * c1 + c2) & ((1 << 16) - 1);
}
return Array.prototype.slice.call(decrypted, discardNumber);
return decrypted;
}
function decryptAscii(data, key, discardNumber) {

Loading…
Cancel
Save