Class ClientFinalMessage


public final class ClientFinalMessage extends AbstractScramMessage
Constructs and parses client-final-messages.
Formal Syntax:
cbind-input gs2-header [ cbind-data ]
;; cbind-data MUST be present for
;; gs2-cbind-flag of "p" and MUST be absent
;; for "y" or "n".
channel-binding "c=" base64
;; base64 encoding of cbind-input.
client-final-message-without-proof channel-binding "," nonce ["," extensions]
client-final-message client-final-message-without-proof "," proof
See Also:
  • Field Details

    • cbindInput

      private final String cbindInput
      channel-binding = "c=" base64 encoding of cbind-input.
    • nonce

      private final String nonce
      nonce = "r=" c-nonce [s-nonce]. Second part provided by server.
    • proof

      private final byte[] proof
      proof = "p=" base64.
  • Constructor Details

    • ClientFinalMessage

      public ClientFinalMessage(Gs2Header gs2Header, byte[] cbindData, String nonce, byte[] proof)
      Constructus a client-final-message with the provided gs2Header (the same one used in the client-first-message), optionally the channel binding data, and the nonce. This method is intended to be used by SCRAM clients, and not to be constructed directly.
      Parameters:
      gs2Header - The GSS-API header
      cbindData - If using channel binding, the channel binding data
      nonce - The nonce
      proof - The bytes representing the computed client proof
  • Method Details

    • getCbindInput

      public String getCbindInput()
      Return the channel-binding "c=" base64 encoding of cbind-input.
      Returns:
      the channel-binding
    • getNonce

      public String getNonce()
      Return the nonce.
      Returns:
      the nonce
    • getProof

      public byte[] getProof()
      Return the proof.
      Returns:
      the proof
    • checkChannelBinding

      private static void checkChannelBinding(Gs2Header gs2Header, byte[] cbindData)
    • generateCBindInput

      @NotNull private static @NotNull String generateCBindInput(@NotNull @NotNull Gs2Header gs2Header, byte @Nullable [] cbindData)
    • writeToWithoutProof

      private StringBuilder writeToWithoutProof(@NotNull @NotNull StringBuilder sb)
    • withoutProof

      static StringBuilder withoutProof(StringBuilder sb, Gs2Header gs2Header, byte[] cbindData, String nonce)
    • writeTo

      Description copied from class: StringWritable
      Write the class information to the given StringBuffer.
      Specified by:
      writeTo in class StringWritable
      Parameters:
      sb - Where to write the data.
      Returns:
      The same StringBuffer.