24 lines
643 B
Go
24 lines
643 B
Go
package mschapv2
|
|
|
|
import (
|
|
"bytes"
|
|
"errors"
|
|
)
|
|
|
|
type Response struct {
|
|
Challenge []byte
|
|
NTResponse []byte
|
|
Flags uint8
|
|
}
|
|
|
|
func ParseResponse(raw []byte) (*Response, error) {
|
|
res := &Response{}
|
|
res.Challenge = raw[:challengeValueSize]
|
|
if !bytes.Equal(raw[challengeValueSize:challengeValueSize+responseReservedSize], make([]byte, 8)) {
|
|
return nil, errors.New("MSCHAPv2: Reserved bytes not empty?")
|
|
}
|
|
res.NTResponse = raw[challengeValueSize+responseReservedSize : challengeValueSize+responseReservedSize+responseNTResponseSize]
|
|
res.Flags = (raw[challengeValueSize+responseReservedSize+responseNTResponseSize])
|
|
return res, nil
|
|
}
|