;6`      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_6Provides types and definitions for EAP as per RFC 3748(c) Erick Gonzalez, 2017BSD3erick@codemonkeylabs.de experimentalPOSIXSafe0B  !"#$%&'()*+,-./0123456789:;<=>?@A?  !"#$%&'()*+,-./0123456789:;<=>B:;<=>56789A"#$%&'()*+,-./01234 ! @?   !"#$%&'()*+,-./0123456789:;<=>?@A@MSCHAPv2 EAP authentication method and related utility functions(c) Erick Gonzalez, 2017BSD3erick@codemonkeylabs.de experimentalPOSIXNone!"#T WmAuthenticate the MSCHAPv2 response data to a given challenge request, using the supplied cleartext password.X7Calculate the NT Response as per [RFC2759], Section 8.1Y>Calculate authenticator response as per [RFC2759], Section 8.7ZDDerive Microsoft Point-to-Point Encryption (MPPE) keys see [RFC3079]`0Used internally to derive 8 octet challenge hash[Hash an NT ascii plain-text. Password with MD4. Note that this function converts then password internally to Unicode, so feeding a Unicode password to it will *not* worka)Used internally to calculate an MD4 hash.b8Used internally to calculate a hash digest incrementallycIUsed internally to update an incremental hash function in the state monaddCUsed internally to encrypt a message using a DES cipher in ECB modee^Used internally to add the parity bits to a 56 bit (7 octet key) thus becoming an 8 octet key W'Decoded data from the MSCHAPv2 response>Authenticator challenge sent to the peer on a previous request*Authenticating user password NT hash (MD4)Returns either an error from one of the encryption routines or a boolean indicating whether the user response matches the expected valueX?Authenticator challenge sent to the peer on a previous request*Challenge sent back by authenticating peerMSCHAP usernameNT hash (MD4) of user password[Returns either an error from one of the encryption routines or the calculated NT responseYUsernameNT password hash (MD4) NT ResponseAuthenticator challengePeer challengelReturns either an error from one of the crypto routines or upon success, a 42 byte authenticator responseZHash of the NT hash NT Response"(MPPE send key, MPPE recv key)`Peer challengeAuthenticator challengeUsernameResulting SHA1 hash[abcdeWXYZ[WYX[Z WXYZ`[abcde=Provides on the wire de/coding of EAP packets as per RFC 3748(c) Erick Gonzalez, 2017BSD3erick@codemonkeylabs.de experimentalPOSIXSafe!"fGiven the length of data to decode, decode an EAP message in the Get Monad. Used internally so you probably don't need to use this.gGiven Maybe an EAP message to encode, do so in the Put Monad. Used internally. This is necessary cause if one was to put the Maybe value directly on the wire, it would include the coding for the Maybe type itself, as opposed to empty or *just* the data which is what we wanthUsed internally to decode MSCHAPv2Data since it is not possible to do so in the Get Monad cause the data itself is meaningless without the opcode of the enclosing packet. You normally wouldn't need this. fgijh\]^_ fgijh\]^_k      !"#$%&'()*+,-./0123456789:;<==>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm!eap-0.9.0.0-38j52uNrvL4gmHzGuP1jFNetwork.EAP.TypesNetwork.EAP.MSCHAPv2Network.EAP.EncodingMSCHAPv2ResponseDataField getMSCHAPv2ResponsePeerChallengegetMSCHAPv2ResponseNTResponse MSCHAPv2DataMSCHAPv2ChallengeDataMSCHAPv2ResponseDataMSCHAPv2SuccessRequestDataMSCHAPv2FailureRequestDataMSCHAPv2ChangePasswordDataMSCHAPv2NoDatagetMSCHAPv2ChallengegetMSCHAPv2ChallengeNamegetMSCHAPv2ResponseDatagetMSCHAPv2ResponseName getMSCHAPv2SuccessRequestMessage getMSCHAPv2FailureRequestMessagegetMSCHAPv2EncryptedPasswordgetMSCHAPv2EncryptedHashgetMSCHAPv2PeerChallengegetMSCHAPv2NTResponseMSCHAPv2OpCodeMSCHAPv2ChallengeMSCHAPv2ResponseMSCHAPv2SuccessMSCHAPv2FailureMSCHAPv2ChangePasswordAuthTypeMD5ChallengeAuthOTPAuthGenericTokenCardAuth RSAPubKeyAuthTLSAuth MSCHAPv2AuthMessageIdentityMessageNotificationMessage NakMessageMD5ChallengeMessage OTPMessageGenericTokenCardMessageMSCHAPv2MessagegetIdentityMessagegetNotificationMessagegetAuthenticationTypegetMD5ChallengeValuegetMD5ChallengeName getOTPMessagegetGenericTokenCardMessagegetMSCHAPv2OpCode getMSCHAPv2IdgetMSCHAPv2LengthgetMSCHAPv2Data PacketType RequestPacketResponsePacket SuccessPacket FailurePacketPacket getPacketType getPacketIdgetPacketMessage$fEnumMSCHAPv2OpCode$fEnumAuthType$fEnumPacketType$fShowPacketType$fEqPacketType$fDataPacketType$fShowAuthType $fEqAuthType$fDataAuthType$fShowMSCHAPv2OpCode$fEqMSCHAPv2OpCode$fDataMSCHAPv2OpCode$fShowMSCHAPv2ResponseDataField$fEqMSCHAPv2ResponseDataField$fDataMSCHAPv2ResponseDataField$fShowMSCHAPv2Data$fEqMSCHAPv2Data$fDataMSCHAPv2Data $fShowMessage $fEqMessage $fDataMessage $fShowPacket $fEqPacket $fDataPacketauthenticateMSCHAPv2generateNTResponsegenerateAuthenticatorResponsederiveMPPEKeysntPasswordHash!$fBinaryMSCHAPv2ResponseDataField$fBinaryMSCHAPv2Data$fBinaryPacketType$fBinaryPacket challengeHashmd4Hashsha1Hashhash encryptDES addParity getMessage putMessage decodeData encodeMessage decodeMessage