docs: private byte[] hi(String normalizedPassword, byte[] salt, int iterations) throws SmackSaslException {
          byte[] key;
          try {
              // According to RFC 5802 § 2.2, the resulting string of the normalization is also in UTF-8.
              key = normalizedPassword.getBytes(StringUtils.UTF8);
          }
          catch (UnsupportedEncodingException e) {
              throw new AssertionError();
          }
          // U1 := HMAC(str, salt + INT(1))
          byte[] u = hmac(key, ByteUtils.concat(salt, ONE));
          byte[] res = u.clone();
          for (int i = 1; i < iterations; i++) {
              u = hmac(key, u);
              for (int j = 0; j < u.length; j++) {
                  res[j] ^= u[j];
              }
          }
          return res;
      }