docs: public byte[] getAnsiHash( byte[] challenge ) {
          if( hashesExternal ) {
              return ansiHash;
          }
          switch (LM_COMPATIBILITY) {
          case 0:
          case 1:
              return getPreNTLMResponse( password, challenge );
          case 2:
              return getNTLMResponse( password, challenge );
          case 3:
          case 4:
          case 5:
              if( clientChallenge == null ) {
                  clientChallenge = new byte[8];
                  RANDOM.nextBytes( clientChallenge );
              }
              return getLMv2Response(domain, username, password, challenge,
                      clientChallenge);
          default:
              return getPreNTLMResponse( password, challenge );
          }
      }