* @param {Array. } key * @param {Array. } P * @param {Array. } S * @inner
(key, P, S)
| 874 | * @inner |
| 875 | */ |
| 876 | function _key(key, P, S) { |
| 877 | var offset = 0, |
| 878 | lr = [0, 0], |
| 879 | plen = P.length, |
| 880 | slen = S.length, |
| 881 | sw; |
| 882 | for (var i = 0; i < plen; i++) |
| 883 | (sw = _streamtoword(key, offset)), |
| 884 | (offset = sw.offp), |
| 885 | (P[i] = P[i] ^ sw.key); |
| 886 | for (i = 0; i < plen; i += 2) |
| 887 | (lr = _encipher(lr, 0, P, S)), (P[i] = lr[0]), (P[i + 1] = lr[1]); |
| 888 | for (i = 0; i < slen; i += 2) |
| 889 | (lr = _encipher(lr, 0, P, S)), (S[i] = lr[0]), (S[i + 1] = lr[1]); |
| 890 | } |
| 891 | |
| 892 | /** |
| 893 | * Expensive key schedule Blowfish. |
no test coverage detected