scram

package
v0.0.0-...-93ce9e3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 23, 2024 License: GPL-2.0 Imports: 8 Imported by: 0

Documentation

Overview

***************************************************************************** * 版权信息:北京人大金仓信息技术股份有限公司

* 作者:KingbaseES

* 文件名:scram.go

* 功能描述:SCRAM相关认证的实现

* 其它说明:

  • 修改记录: 1.修改时间:

    2.修改人:

    3.修改内容:

*****************************************************************************

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

SCRAM相关的认证方法(如SCRAM-SHA-1, SCRAM-SHA-256等). 可以在SASL会话中通过类似以下的方式进行使用:

var in []byte
var client = scram.NewClient(sha1.New, user, pass)
for client.Step(in) {
        out := client.Out()
        //发送到服务端
        in := serverOut
}
if client.Err() != nil {
        //认证失败
}

func NewClient

func NewClient(newHash func() hash.Hash, userName, password string) (client *Client)

NewClient返回一个包含提供的哈希算法的Client结构体

以SCRAM-SHA-256为例,用法如下:

client := scram.NewClient(sha256.New, user, pass)

func (*Client) Err

func (client *Client) Err() (err error)

Err返回出现的错误,无错误时返回空

func (*Client) Out

func (client *Client) Out() (bytes []byte)

Out返回当前要发送到服务端的数据

func (*Client) SetNonce

func (client *Client) SetNonce(nonce []byte)

SetNonce将客户端nonce设置为提供的值 如果没有设置,则nonce会通过crypto/rand自动生成

func (*Client) Step

func (client *Client) Step(in []byte) (state bool)

Step处理来自服务器的传入数据,并通过Client.Out获取接下来所需的数据 如果没有错误且需要更多的数据,Step将返回false

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL