private static byte[] lmv2Response(byte[] hash,byte[] clientData,byte[] challenge) throws Exception {
  byte[] data=new byte[challenge.length + clientData.length];
  System.arraycopy(challenge,0,data,0,challenge.length);
  System.arraycopy(clientData,0,data,challenge.length,clientData.length);
  byte[] mac=hmacMD5(data,hash);
  byte[] lmv2Response=new byte[mac.length + clientData.length];
  System.arraycopy(mac,0,lmv2Response,0,mac.length);
  System.arraycopy(clientData,0,lmv2Response,mac.length,clientData.length);
  return lmv2Response;
}

private static byte [ ] lmv2Response ( byte [ ] hash , byte [ ] clientData , byte [ ] challenge ) throws Exception { byte [ ] data = new byte [ challenge . length + clientData . length ] ; System . arraycopy ( challenge , 0 , data , 0 , challenge . length ) ; System . arraycopy ( clientData , 0 , data , challenge . length , clientData . length ) ; byte [ ] mac = hmacMD5 ( data , hash ) ; byte [ ] lmv2Response = new byte [ mac . length + clientData . length ] ; System . arraycopy ( mac , 0 , lmv2Response , 0 , mac . length ) ; System . arraycopy ( clientData , 0 , lmv2Response , mac . length , clientData . length ) ; return lmv2Response ; }
creates the lmv2 response from the given hash , client data , and type 2 challenge .
