static byte[] computeResponse ( byte[] responseKey, byte[] serverChallenge, byte[] clientData, int offset, int length ) { MessageDigest hmac = Crypto.getHMACT64(responseKey); hmac.update(serverChallenge); hmac.update(clientData, offset, length); byte[] mac = hmac.digest(); byte[] ret = new byte[mac.length + clientData.length]; System.arraycopy(mac, 0, ret, 0, mac.length); System.arraycopy(clientData, 0, ret, mac.length, clientData.length); return ret; }
static byte[] computeResponse ( byte[] responseKey, byte[] serverChallenge, byte[] clientData, int offset, int length ) { MessageDigest hmac = Crypto.getHMACT64(responseKey); hmac.update(serverChallenge); hmac.update(clientData, offset, length); byte[] mac = hmac.digest(); byte[] ret = new byte[mac.length + clientData.length]; System.arraycopy(mac, 0, ret, 0, mac.length); System.arraycopy(clientData, 0, ret, mac.length, clientData.length); return ret; }
/** * Sets the MIC * * @param type1 * @param type2 * @throws GeneralSecurityException * @throws IOException */ public void setupMIC ( byte[] type1, byte[] type2 ) throws GeneralSecurityException, IOException { byte[] sk = this.masterKey; if ( sk == null ) { return; } MessageDigest mac = Crypto.getHMACT64(sk); mac.update(type1); mac.update(type2); byte[] type3 = toByteArray(); mac.update(type3); setMic(mac.digest()); }
/** * Sets the MIC * * @param type1 * @param type2 * @throws GeneralSecurityException * @throws IOException */ public void setupMIC ( byte[] type1, byte[] type2 ) throws GeneralSecurityException, IOException { byte[] sk = this.masterKey; if ( sk == null ) { return; } MessageDigest mac = Crypto.getHMACT64(sk); mac.update(type1); mac.update(type2); byte[] type3 = toByteArray(); mac.update(type3); setMic(mac.digest()); }
/** * * @param domain * @param username * @param password * * @return the caclulated mac */ public static byte[] nTOWFv2 ( String domain, String username, String password ) { MessageDigest md4 = Crypto.getMD4(); md4.update(Strings.getUNIBytes(password)); MessageDigest hmac = Crypto.getHMACT64(md4.digest()); hmac.update(Strings.getUNIBytes(username.toUpperCase())); hmac.update(Strings.getUNIBytes(domain)); return hmac.digest(); }
/** * * @param domain * @param username * @param password * * @return the caclulated mac */ public static byte[] nTOWFv2 ( String domain, String username, String password ) { MessageDigest md4 = Crypto.getMD4(); md4.update(Strings.getUNIBytes(password)); MessageDigest hmac = Crypto.getHMACT64(md4.digest()); hmac.update(Strings.getUNIBytes(username.toUpperCase())); hmac.update(Strings.getUNIBytes(domain)); return hmac.digest(); }
MessageDigest hmac = Crypto.getHMACT64(md4.digest()); hmac.update(Strings.getUNIBytes(user.toUpperCase())); hmac.update(Strings.getUNIBytes(domain.toUpperCase())); hmac = Crypto.getHMACT64(hmac.digest()); hmac.update(challenge); hmac.update(clientChallenge);
MessageDigest hmac = Crypto.getHMACT64(md4.digest()); hmac.update(Strings.getUNIBytes(user.toUpperCase())); hmac.update(Strings.getUNIBytes(domain.toUpperCase())); hmac = Crypto.getHMACT64(hmac.digest()); hmac.update(challenge); hmac.update(clientChallenge);
MessageDigest hmac = Crypto.getHMACT64(md4.digest()); hmac.update(Strings.getUNIBytes(this.username.toUpperCase())); hmac.update(Strings.getUNIBytes(this.domain.toUpperCase())); byte[] ntlmv2Hash = hmac.digest(); hmac = Crypto.getHMACT64(ntlmv2Hash); hmac.update(chlng); hmac.update(this.clientChallenge); MessageDigest userKey = Crypto.getHMACT64(ntlmv2Hash); userKey.update(hmac.digest()); userKey.digest(dest, offset, 16);
MessageDigest hmac = Crypto.getHMACT64(md4.digest()); hmac.update(Strings.getUNIBytes(this.username.toUpperCase())); hmac.update(Strings.getUNIBytes(this.domain.toUpperCase())); byte[] ntlmv2Hash = hmac.digest(); hmac = Crypto.getHMACT64(ntlmv2Hash); hmac.update(chlng); hmac.update(this.clientChallenge); MessageDigest userKey = Crypto.getHMACT64(ntlmv2Hash); userKey.update(hmac.digest()); userKey.digest(dest, offset, 16);
SMBUtil.writeInt4(seqNum, seqBytes, 0); MessageDigest mac = Crypto.getHMACT64(sk);
SMBUtil.writeInt4(seqNum, seqBytes, 0); MessageDigest mac = Crypto.getHMACT64(sk);
MessageDigest mac = Crypto.getHMACT64(sk); int seq = SMBUtil.readInt4(mic, 12); mac.update(mic, 12, 4); // sequence
MessageDigest mac = Crypto.getHMACT64(sk); int seq = SMBUtil.readInt4(mic, 12); mac.update(mic, 12, 4); // sequence
byte[] userSessionKey = md4.digest(); MessageDigest hmac = Crypto.getHMACT64(userSessionKey); hmac.update(sessionNonce); byte[] ntlm2SessionKey = hmac.digest(); MessageDigest hmac = Crypto.getHMACT64(responseKeyNT); hmac.update(this.ntResponse, 0, 16); // only first 16 bytes of ntResponse byte[] userSessionKey = hmac.digest();
byte[] userSessionKey = md4.digest(); MessageDigest hmac = Crypto.getHMACT64(userSessionKey); hmac.update(sessionNonce); byte[] ntlm2SessionKey = hmac.digest(); MessageDigest hmac = Crypto.getHMACT64(responseKeyNT); hmac.update(this.ntResponse, 0, 16); // only first 16 bytes of ntResponse byte[] userSessionKey = hmac.digest();