Generated from Manticore v1.1.5 • 201 packages. View on pkg.go.dev

challenge

import "github.com/TheManticoreProject/Manticore/crypto/spnego/ntlm/message/challenge"

Index

type ChallengeMessage

ChallengeMessage is the second message in NTLM authentication Source: https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/801a4681-8809-4be9-ab0d-61dcfe762786

type ChallengeMessage struct {
    header.Header

    // TargetNameFields (8 bytes): A field containing TargetName information.
    TargetNameFields datafields.DataFields

    // NegotiateFlags (4 bytes): A NEGOTIATE structure that contains a set of flags, as defined by section 2.2.2.5. The server sets flags to indicate options it supports or, if there has been a NEGOTIATE_MESSAGE (section 2.2.1.1), the choices it has made from the options offered by the client. If the client has set the NTLMSSP_NEGOTIATE_SIGN in the NEGOTIATE_MESSAGE the Server MUST return it.
    NegotiateFlags flags.NegotiateFlags

    // ServerChallenge (8 bytes): A 64-bit value that contains the NTLM challenge. The challenge is a 64-bit nonce. The processing of the ServerChallenge is specified in sections 3.1.5 and 3.2.5.
    ServerChallenge [8]byte

    // Reserved (8 bytes): An 8-byte array whose elements MUST be zero when sent and MUST be ignored on receipt.
    Reserved [8]byte

    // TargetInfoFields (8 bytes): A field containing TargetInfo information.
    TargetInfoFields datafields.DataFields

    // Version (8 bytes): A VERSION structure that contains version information.
    Version *version.Version

    // TargetName (variable): A field containing TargetName data.
    TargetName []byte

    // TargetInfo (variable): A field containing TargetInfo data.
    TargetInfo []byte
}

func (*ChallengeMessage) GetMessageType

func (msg *ChallengeMessage) GetMessageType() uint32

GetMessageType returns the message type of the ChallengeMessage

func (*ChallengeMessage) Marshal

func (msg *ChallengeMessage) Marshal() ([]byte, error)

Marshal serializes the ChallengeMessage into a byte slice

func (*ChallengeMessage) Unmarshal

func (msg *ChallengeMessage) Unmarshal(data []byte) (int, error)

Unmarshal deserializes the ChallengeMessage from a byte slice