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:
    [RFC5802] Section 7
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.String cbindInput
      channel-binding = "c=" base64 encoding of cbind-input.
      private java.lang.String nonce
      nonce = "r=" c-nonce [s-nonce].
      private byte[] proof
      proof = "p=" base64.
    • Constructor Summary

      Constructors 
      Constructor Description
      ClientFinalMessage​(Gs2Header gs2Header, byte[] cbindData, java.lang.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.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private static void checkChannelBinding​(Gs2Header gs2Header, byte[] cbindData)  
      private static @NotNull java.lang.String generateCBindInput​(@NotNull Gs2Header gs2Header, byte @Nullable [] cbindData)  
      java.lang.String getCbindInput()
      Return the channel-binding "c=" base64 encoding of cbind-input.
      java.lang.String getNonce()
      Return the nonce.
      byte[] getProof()
      Return the proof.
      (package private) static java.lang.StringBuilder withoutProof​(java.lang.StringBuilder sb, Gs2Header gs2Header, byte[] cbindData, java.lang.String nonce)  
      (package private) java.lang.StringBuilder writeTo​(java.lang.StringBuilder sb)
      Write the class information to the given StringBuffer.
      private java.lang.StringBuilder writeToWithoutProof​(@NotNull java.lang.StringBuilder sb)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • cbindInput

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

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

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

      • ClientFinalMessage

        public ClientFinalMessage​(Gs2Header gs2Header,
                                  byte[] cbindData,
                                  java.lang.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 Detail

      • getCbindInput

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

        public java.lang.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 java.lang.String generateCBindInput​(@NotNull
                                                                    @NotNull Gs2Header gs2Header,
                                                                    byte @Nullable [] cbindData)
      • writeToWithoutProof

        private java.lang.StringBuilder writeToWithoutProof​(@NotNull
                                                            @NotNull java.lang.StringBuilder sb)
      • withoutProof

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

        java.lang.StringBuilder writeTo​(java.lang.StringBuilder sb)
        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.