return new ScramInitialServerResult(new ScramInitialServerMessage(clientMessage, serverNonce, salt, iterationCount, messageBytes), password);
throw saslScram.mechUnmatchedMechanism(mechanism.toString(), initialResponse.getMechanism().toString()); if (initialChallenge.getMechanism() != mechanism) { throw saslScram.mechUnmatchedMechanism(mechanism.toString(), initialChallenge.getMechanism().toString()); encoded.append(',').append('r').append('=').append(initialResponse.getRawNonce()).append(initialChallenge.getRawServerNonce()); initialChallenge.getIterationCount(), initialChallenge.getRawSalt() ); ScramDigestPassword password = MechanismUtil.getPasswordCredential( if (trace) saslScram.tracef("[C] Using client first message: %s%n", ByteIterator.ofBytes(initialResponseBytes, initialResponse.getInitialPartIndex(), initialResponseBytes.length - initialResponse.getInitialPartIndex()).hexEncode().drainToString()); mac.update((byte) ','); mac.update(initialChallenge.getRawMessageBytes()); if(trace) saslScram.tracef("[C] Using server first message: %s%n", ByteIterator.ofBytes(initialChallenge.getRawMessageBytes()).hexEncode().drainToString()); mac.update((byte) ','); encoded.updateMac(mac);
setNegotiationState(S_FINAL_MESSAGE); ok = true; return initialServerResult.getScramInitialChallenge().getMessageBytes();
Assert.checkNotNullParam("initialChallenge", initialChallenge); final ScramMechanism mechanism = initialResponse.getMechanism(); if (mechanism != initialChallenge.getMechanism()) { throw saslScram.mechUnmatchedMechanism(mechanism.toString(), initialChallenge.getMechanism().toString()); final byte[] serverNonce = initialChallenge.getRawServerNonce(); if (! bi.delimitedBy(',').limitedTo(clientNonce.length).contentEquals(ByteIterator.ofBytes(clientNonce)) || ! bi.delimitedBy(',').limitedTo(serverNonce.length).contentEquals(ByteIterator.ofBytes(serverNonce))) {
mac.update(clientFirstMessage, bareStart, clientFirstMessage.length - bareStart); mac.update((byte) ','); byte[] serverFirstMessage = finalResponse.getInitialChallenge().getRawMessageBytes(); mac.update(serverFirstMessage); mac.update((byte) ',');
Assert.checkNotNullParam("initialChallenge", initialChallenge); final ScramMechanism mechanism = initialResponse.getMechanism(); if (mechanism != initialChallenge.getMechanism()) { throw saslScram.mechUnmatchedMechanism(mechanism.toString(), initialChallenge.getMechanism().toString()); final byte[] serverNonce = initialChallenge.getRawServerNonce(); if (! bi.delimitedBy(',').limitedTo(clientNonce.length).contentEquals(ByteIterator.ofBytes(clientNonce)) || ! bi.delimitedBy(',').limitedTo(serverNonce.length).contentEquals(ByteIterator.ofBytes(serverNonce))) {
if(trace) saslScram.tracef("[S] Using client first message: %s%n", ByteIterator.ofBytes(copyOfRange(clientFirstMessage, clientFirstMessageBareStart, clientFirstMessage.length)).hexEncode().drainToString()); mac.update((byte) ','); final byte[] serverFirstMessage = initialResult.getScramInitialChallenge().getRawMessageBytes(); mac.update(serverFirstMessage); if(trace) saslScram.tracef("[S] Using server first message: %s%n", ByteIterator.ofBytes(serverFirstMessage).hexEncode().drainToString());
throw saslScram.mechUnmatchedMechanism(mechanism.toString(), initialResponse.getMechanism().toString()); if (initialChallenge.getMechanism() != mechanism) { throw saslScram.mechUnmatchedMechanism(mechanism.toString(), initialChallenge.getMechanism().toString()); encoded.append(',').append('r').append('=').append(initialResponse.getRawNonce()).append(initialChallenge.getRawServerNonce()); initialChallenge.getIterationCount(), initialChallenge.getRawSalt() ); ScramDigestPassword password = MechanismUtil.getPasswordCredential( if (trace) saslScram.tracef("[C] Using client first message: %s%n", ByteIterator.ofBytes(initialResponseBytes, initialResponse.getInitialPartIndex(), initialResponseBytes.length - initialResponse.getInitialPartIndex()).hexEncode().drainToString()); mac.update((byte) ','); mac.update(initialChallenge.getRawMessageBytes()); if(trace) saslScram.tracef("[C] Using server first message: %s%n", ByteIterator.ofBytes(initialChallenge.getRawMessageBytes()).hexEncode().drainToString()); mac.update((byte) ','); encoded.updateMac(mac);
Assert.checkNotNullParam("initialChallenge", initialChallenge); final ScramMechanism mechanism = initialResponse.getMechanism(); if (mechanism != initialChallenge.getMechanism()) { throw saslScram.mechUnmatchedMechanism(mechanism.toString(), initialChallenge.getMechanism().toString()); final byte[] serverNonce = initialChallenge.getRawServerNonce(); if (! bi.delimitedBy(',').limitedTo(clientNonce.length).contentEquals(ByteIterator.ofBytes(clientNonce)) || ! bi.delimitedBy(',').limitedTo(serverNonce.length).contentEquals(ByteIterator.ofBytes(serverNonce))) {
mac.update(clientFirstMessage, bareStart, clientFirstMessage.length - bareStart); mac.update((byte) ','); byte[] serverFirstMessage = finalResponse.getInitialChallenge().getRawMessageBytes(); mac.update(serverFirstMessage); mac.update((byte) ',');
throw saslScram.mechInvalidMessageReceived(); return new ScramInitialServerMessage(initialResponse, serverNonce, salt, iterationCount, challenge);
setNegotiationState(S_FINAL_MESSAGE); ok = true; return initialServerResult.getScramInitialChallenge().getMessageBytes();
throw saslScram.mechUnmatchedMechanism(mechanism.toString(), initialResponse.getMechanism().toString()); if (initialChallenge.getMechanism() != mechanism) { throw saslScram.mechUnmatchedMechanism(mechanism.toString(), initialChallenge.getMechanism().toString()); encoded.append(',').append('r').append('=').append(initialResponse.getRawNonce()).append(initialChallenge.getRawServerNonce()); initialChallenge.getIterationCount(), initialChallenge.getRawSalt() ); ScramDigestPassword password = MechanismUtil.getPasswordCredential( if (trace) saslScram.tracef("[C] Using client first message: %s%n", ByteIterator.ofBytes(initialResponseBytes, initialResponse.getInitialPartIndex(), initialResponseBytes.length - initialResponse.getInitialPartIndex()).hexEncode().drainToString()); mac.update((byte) ','); mac.update(initialChallenge.getRawMessageBytes()); if(trace) saslScram.tracef("[C] Using server first message: %s%n", ByteIterator.ofBytes(initialChallenge.getRawMessageBytes()).hexEncode().drainToString()); mac.update((byte) ','); encoded.updateMac(mac);
Assert.checkNotNullParam("initialChallenge", initialChallenge); final ScramMechanism mechanism = initialResponse.getMechanism(); if (mechanism != initialChallenge.getMechanism()) { throw saslScram.mechUnmatchedMechanism(mechanism.toString(), initialChallenge.getMechanism().toString()); final byte[] serverNonce = initialChallenge.getRawServerNonce(); if (! bi.delimitedBy(',').limitedTo(clientNonce.length).contentEquals(ByteIterator.ofBytes(clientNonce)) || ! bi.delimitedBy(',').limitedTo(serverNonce.length).contentEquals(ByteIterator.ofBytes(serverNonce))) {
mac.update(clientFirstMessage, bareStart, clientFirstMessage.length - bareStart); mac.update((byte) ','); byte[] serverFirstMessage = finalResponse.getInitialChallenge().getRawMessageBytes(); mac.update(serverFirstMessage); mac.update((byte) ',');
return new ScramInitialServerResult(new ScramInitialServerMessage(clientMessage, serverNonce, salt, iterationCount, messageBytes), password);
setNegotiationState(S_FINAL_MESSAGE); ok = true; return initialServerResult.getScramInitialChallenge().getMessageBytes();
throw saslScram.mechUnmatchedMechanism(mechanism.toString(), initialResponse.getMechanism().toString()); if (initialChallenge.getMechanism() != mechanism) { throw saslScram.mechUnmatchedMechanism(mechanism.toString(), initialChallenge.getMechanism().toString()); encoded.append(',').append('r').append('=').append(initialResponse.getRawNonce()).append(initialChallenge.getRawServerNonce()); initialChallenge.getIterationCount(), initialChallenge.getRawSalt() ); ScramDigestPassword password = MechanismUtil.getPasswordCredential( if (trace) saslScram.tracef("[C] Using client first message: %s%n", ByteIterator.ofBytes(initialResponseBytes, initialResponse.getInitialPartIndex(), initialResponseBytes.length - initialResponse.getInitialPartIndex()).hexEncode().drainToString()); mac.update((byte) ','); mac.update(initialChallenge.getRawMessageBytes()); if(trace) saslScram.tracef("[C] Using server first message: %s%n", ByteIterator.ofBytes(initialChallenge.getRawMessageBytes()).hexEncode().drainToString()); mac.update((byte) ','); encoded.updateMac(mac);
mac.update(clientFirstMessage, bareStart, clientFirstMessage.length - bareStart); mac.update((byte) ','); byte[] serverFirstMessage = finalResponse.getInitialChallenge().getRawMessageBytes(); mac.update(serverFirstMessage); mac.update((byte) ',');
return new ScramInitialServerResult(new ScramInitialServerMessage(clientMessage, serverNonce, salt, iterationCount, messageBytes), password);