github.com/argoproj/argo-events@v1.9.1/common/scram_client.go (about)

     1  package common
     2  
     3  import (
     4  	"crypto/sha256"
     5  	"crypto/sha512"
     6  
     7  	"github.com/xdg-go/scram"
     8  )
     9  
    10  var (
    11  	SHA256New scram.HashGeneratorFcn = sha256.New
    12  	SHA512New scram.HashGeneratorFcn = sha512.New
    13  )
    14  
    15  type XDGSCRAMClient struct {
    16  	*scram.Client
    17  	*scram.ClientConversation
    18  	scram.HashGeneratorFcn
    19  }
    20  
    21  func (x *XDGSCRAMClient) Begin(userName, password, authzID string) (err error) {
    22  	x.Client, err = x.HashGeneratorFcn.NewClient(userName, password, authzID)
    23  	if err != nil {
    24  		return err
    25  	}
    26  	x.ClientConversation = x.Client.NewConversation()
    27  	return nil
    28  }
    29  
    30  func (x *XDGSCRAMClient) Step(challenge string) (response string, err error) {
    31  	response, err = x.ClientConversation.Step(challenge)
    32  	return
    33  }
    34  
    35  func (x *XDGSCRAMClient) Done() bool {
    36  	return x.ClientConversation.Done()
    37  }