MSCHAPV2

package
v0.0.0-...-05317bf Latest Latest
Warning

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

Go to latest
Published: Nov 21, 2015 License: MIT, MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenerateAuthenticatorResponse

func GenerateAuthenticatorResponse(Password []byte, NTResponse [24]byte, PeerChallenge [16]byte,
	AuthenticatorChallenge [16]byte, UserName []byte) [20]byte

RFC2759 section 8.7 page 9 return binary form of the result in the hash example password is utf-16 encode.

   Password = "clientPass" 密码的输入格式比较奇怪.utf16?
			   = 63 00 6C 00 69 00 65 00 6E 00
				 74 00 50 00 61 00 73 00 73 00

func MsCHAPV2GetSendAndRecvKey

func MsCHAPV2GetSendAndRecvKey(Password []byte, NTResponse [24]byte) (sendKey []byte, recvKey []byte)

http://www.ietf.org/rfc/rfc3079.txt

   Password = "clientPass" 密码的输入格式已经修正
			   = 63 00 6C 00 69 00 65 00 6E 00
				 74 00 50 00 61 00 73 00 73 00

Types

type ChallengePacket

type ChallengePacket struct {
	Identifier uint8
	Challenge  [16]byte
	Name       string
}

func (*ChallengePacket) Encode

func (p *ChallengePacket) Encode() (b []byte)

func (*ChallengePacket) OpCode

func (p *ChallengePacket) OpCode() OpCode

func (*ChallengePacket) String

func (p *ChallengePacket) String() string

type OpCode

type OpCode uint8
const (
	OpCodeChallenge      OpCode = 1
	OpCodeResponse       OpCode = 2
	OpCodeSuccess        OpCode = 3
	OpCodeFailure        OpCode = 4
	OpCodeChangePassword OpCode = 7
)

func (OpCode) String

func (c OpCode) String() string

type Packet

type Packet interface {
	String() string
	OpCode() OpCode
	Encode() (b []byte)
}

func Decode

func Decode(b []byte) (p Packet, err error)

type ReplySuccessPacketRequest

type ReplySuccessPacketRequest struct {
	AuthenticatorChallenge [16]byte
	Response               *ResponsePacket
	Username               []byte
	Password               []byte
	Message                string
}

type ResponsePacket

type ResponsePacket struct {
	Identifier    uint8
	PeerChallenge [16]byte //16byte
	NTResponse    [24]byte //24byte
	Name          string
}

func (*ResponsePacket) Encode

func (p *ResponsePacket) Encode() (b []byte)

func (*ResponsePacket) OpCode

func (p *ResponsePacket) OpCode() OpCode

func (*ResponsePacket) String

func (p *ResponsePacket) String() string

type SimplePacket

type SimplePacket struct {
	Code OpCode
}

func (*SimplePacket) Encode

func (p *SimplePacket) Encode() (b []byte)

func (*SimplePacket) OpCode

func (p *SimplePacket) OpCode() OpCode

func (*SimplePacket) String

func (p *SimplePacket) String() string

type SuccessPacket

type SuccessPacket struct {
	Identifier uint8
	Auth       [20]byte // the binary format of auth_string
	Message    string
}

look like "S=<auth_string> M=<message>"

func ReplySuccessPacket

func ReplySuccessPacket(req *ReplySuccessPacketRequest) (p *SuccessPacket)

func (*SuccessPacket) Encode

func (p *SuccessPacket) Encode() (b []byte)

func (*SuccessPacket) OpCode

func (p *SuccessPacket) OpCode() OpCode

func (*SuccessPacket) String

func (p *SuccessPacket) String() string

Jump to

Keyboard shortcuts

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