|
|
|
@ -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) { |
|
|
|
|