Class AbstractSaslSCRAM

    • Field Detail

      • TLS_UNIQUE_ID_KEY

        public static final java.lang.String TLS_UNIQUE_ID_KEY
        See Also:
        Constant Field Values
      • LOCAL_CERTIFICATE_KEY

        public static final java.lang.String LOCAL_CERTIFICATE_KEY
        See Also:
        Constant Field Values
      • DEFAULT_CLIENT_KEY

        protected static final byte[] DEFAULT_CLIENT_KEY
      • DEFAULT_SERVER_KEY

        protected static final byte[] DEFAULT_SERVER_KEY
    • Constructor Detail

      • AbstractSaslSCRAM

        protected AbstractSaslSCRAM​(java.lang.String mechanismName,
                                    java.lang.String algorithm,
                                    byte[] clientKey,
                                    byte[] serverKey,
                                    java.util.Map<? super java.lang.String,​?> props,
                                    javax.security.auth.callback.CallbackHandler callbackHandler)
      • AbstractSaslSCRAM

        protected AbstractSaslSCRAM​(java.lang.String mechanismName,
                                    java.lang.String algorithm,
                                    byte[] clientKey,
                                    byte[] serverKey,
                                    java.util.Map<? super java.lang.String,​?> props,
                                    javax.security.auth.callback.CallbackHandler callbackHandler,
                                    java.lang.String serverOnce)
    • Method Detail

      • hi

        public static byte[] hi​(java.lang.String algorithm,
                                byte[] password,
                                byte[] salt,
                                int iterations)
                         throws java.security.InvalidKeyException,
                                java.security.NoSuchAlgorithmException
        Throws:
        java.security.InvalidKeyException
        java.security.NoSuchAlgorithmException
      • hmac

        protected static byte[] hmac​(javax.crypto.SecretKey key,
                                     byte[] data)
                              throws java.security.NoSuchAlgorithmException,
                                     java.security.InvalidKeyException
        Throws:
        java.security.NoSuchAlgorithmException
        java.security.InvalidKeyException
      • normalize

        public static byte[] normalize​(java.lang.String str)
      • calculateC

        protected byte[] calculateC()
      • checkRequestedBindType

        protected abstract void checkRequestedBindType​(AbstractSaslSCRAM.BindType requestedBindType)
                                                throws javax.security.sasl.SaslException
        Throws:
        javax.security.sasl.SaslException
      • evaluateResponse

        public byte[] evaluateResponse​(byte[] response)
                                throws javax.security.sasl.SaslException
        Throws:
        javax.security.sasl.SaslException
      • getAuthorizationID

        public java.lang.String getAuthorizationID()
      • getMechanismName

        public java.lang.String getMechanismName()
      • h

        protected byte[] h​(byte[] data)
                    throws java.security.NoSuchAlgorithmException
        Throws:
        java.security.NoSuchAlgorithmException
      • key

        protected javax.crypto.SecretKey key​(byte[] key)
      • processClientFirstMessage

        protected byte[] processClientFirstMessage​(byte[] data)
                                            throws javax.security.sasl.SaslException,
                                                   java.security.InvalidKeyException,
                                                   java.security.NoSuchAlgorithmException
        Throws:
        javax.security.sasl.SaslException
        java.security.InvalidKeyException
        java.security.NoSuchAlgorithmException
      • processClientLastMessage

        protected byte[] processClientLastMessage​(byte[] data)
                                           throws javax.security.sasl.SaslException,
                                                  java.security.InvalidKeyException,
                                                  java.security.NoSuchAlgorithmException
        Throws:
        javax.security.sasl.SaslException
        java.security.InvalidKeyException
        java.security.NoSuchAlgorithmException
      • unwrap

        public byte[] unwrap​(byte[] incoming,
                             int offset,
                             int len)
      • validateBindingsData

        protected void validateBindingsData​(AbstractSaslSCRAM.BindType requestedBindType,
                                            byte[] bindingData)
      • wrap

        public byte[] wrap​(byte[] outgoing,
                           int offset,
                           int len)
      • xor

        protected byte[] xor​(byte[] a,
                             byte[] b)