class byteblowerll.byteblower.CHAPProtocol(*args, **kwargs)

Represents the Challenge-Handshake Authentication Protocol

PPP defines an extensible Link Control Protocol, which allows negotiation of an Authentication Protocol for authenticating its peer before allowing Network Layer protocols to transmit over the link.

This class provides the Password Authentication protocol as described per :rfc:1334, section 3

The Challenge-Handshake Authentication Protocol (CHAP) is used to periodically verify the identity of the peer using a 3-way handshake. This is done upon initial link establishment, and MAY be repeated anytime after the link has been established.

After the Link Establishment phase is complete, the authenticator sends a “challenge” message to the peer. The peer responds with a value calculated using a “one-way hash” function. The authenticator checks the response against its own calculation of the expected hash value. If the values match, the authentication is acknowledged, otherwise the connection SHOULD be terminated.

CHAP provides protection against playback attack through the use of an incrementally changing identifier and a variable challenge value. The use of repeated challenges is intended to limit the time of exposure to any single attack. The authenticator is in control of the frequency and timing of the challenges.

This authentication method depends upon a “secret” known only to the authenticator and that peer. The secret is not sent over the link. This method is most likely used where the same secret is easily accessed from both ends of the link.

By default, authentication is not mandatory. If authentication of the link is desired, an implementation MUST specify the Authentication-Protocol Configuration Option during Link Establishment phase.

New in version 2.5.0.

__init__(*args, **kwargs)

Initialize self. See help(type(self)) for accurate signature.


DescriptionGet(*args) Gets a textual description for the current object
ParentGet() Returns the parent object.
Refresh() Retrieves the latest data from the server for this object.
SecretGet() Returns the configured Secret.
SecretSet(secret) Configures the Secret on the Challenge Handshake Authentication Protocol (CHAP)
__init__(*args, **kwargs) Initialize self.


thisown The membership flag