All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.wildfly.security.mechanism.scram.ScramInitialServerMessage Maven / Gradle / Ivy

Go to download

This artifact provides a single jar that contains all classes required to use remote EJB and JMS, including all dependencies. It is intended for use by those not using maven, maven users should just import the EJB and JMS BOM's instead (shaded JAR's cause lots of problems with maven, as it is very easy to inadvertently end up with different versions on classes on the class path).

There is a newer version: 34.0.0.Final
Show newest version
/*
 * JBoss, Home of Professional Open Source.
 * Copyright 2015 Red Hat, Inc., and individual contributors
 * as indicated by the @author tags.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.wildfly.security.mechanism.scram;

/**
 * Initial server message for the SCRAM authentication.
 *
 * @author David M. Lloyd
 */
public final class ScramInitialServerMessage {
    private final ScramInitialClientMessage initialResponse;
    private final byte[] serverNonce;
    private final byte[] salt;
    private final int iterationCount;
    private final byte[] messageBytes;

    /**
     * Constructs a new {@code ScramInitialServerMessage} instance.
     *
     * @param initialResponse the initial client message that this initial server message is responding to.
     * @param serverNonce the server generated nonce.
     * @param salt the salt used for generating salted password.
     * @param iterationCount the iteration count used for generating salted password.
     * @param messageBytes the message in form of byte array.
     */
    ScramInitialServerMessage(final ScramInitialClientMessage initialResponse, final byte[] serverNonce, final byte[] salt, final int iterationCount, final byte[] messageBytes) {
        this.initialResponse = initialResponse;
        this.serverNonce = serverNonce;
        this.salt = salt;
        this.iterationCount = iterationCount;
        this.messageBytes = messageBytes;
    }

    /**
     * Returns the SCRAM mechanism in the initial client message.
     *
     * @return the SCRAM mechanism in the initial client message.
     */
    public ScramMechanism getMechanism() {
        return initialResponse.getMechanism();
    }

    /**
     * Returns the initial client message.
     *
     * @return the initial client message.
     */
    public ScramInitialClientMessage getInitialResponse() {
        return initialResponse;
    }

    /**
     * Returns a copy of the server nonce.
     *
     * @return a copy of the server nonce.
     */
    public byte[] getServerNonce() {
        return serverNonce.clone();
    }

    /**
     * Returns the server nonce.
     *
     * @return the server nonce.
     */
    byte[] getRawServerNonce() {
        return serverNonce;
    }

    /**
     * Returns the iteration count used for generating salted password.
     *
     * @return the iteration count used for generating salted password.
     */
    public int getIterationCount() {
        return iterationCount;
    }

    /**
     * Returns the salt used for generating salted password.
     *
     * @return the salt used for generating salted password.
     */
    byte[] getRawSalt() {
        return salt;
    }

    /**
     * Returns the initial server message in form of byte array.
     *
     * @return the initial server message in form of byte array.
     */
    byte[] getRawMessageBytes() {
        return messageBytes;
    }

    /**
     * Returns a copy of the salt used for generating salted password.
     *
     * @return a copy of the salt used for generating salted password.
     */
    public byte[] getSalt() {
        return salt.clone();
    }

    /**
     * Returns a copy of the message in form of byte array.
     *
     * @return a copy of the message in form of byte array.
     */
    public byte[] getMessageBytes() {
        return messageBytes.clone();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy