code: private void key(final byte key[]) {
          int i;
          final int koffp[] = {0};
          final int lr[] = {0, 0};
          final int plen = P.length, slen = S.length;
  
          for (i = 0; i < plen; i++) {
              P[i] = P[i] ^ streamtoword(key, koffp);
          }
  
          for (i = 0; i < plen; i += 2) {
              encipher(lr, 0);
              P[i] = lr[0];
              P[i + 1] = lr[1];
          }
  
          for (i = 0; i < slen; i += 2) {
              encipher(lr, 0);
              S[i] = lr[0];
              S[i + 1] = lr[1];
          }
      }
docs: Key the Blowfish cipher
  
  @param key an array containing the key