-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Remote Authentication Dial In User Service (RADIUS) -- -- This module provides types and on the wire de/coding of RADIUS packets -- as per RFC2865 @package radius @version 0.2.0.0 -- | This module compiles the RADIUS packet definitions and different -- attributes as specified in RFC 2865. The naming conventions from the -- RFC have been preserved as much as possible, so it should be -- straightforward to look up a particular element and understand what it -- means etc. -- -- RADIUS extensions in RFC 2869 are also supported, as well as RFC 3162 -- for IPv6 related attributes module Network.RADIUS.Types data Header Header :: PacketType -> Word8 -> Word16 -> ByteString -> Header [getPacketType] :: Header -> PacketType [getPacketId] :: Header -> Word8 [getPacketLength] :: Header -> Word16 [getPacketAuthenticator] :: Header -> ByteString data Packet Packet :: Header -> [PacketAttribute] -> Packet [getHeader] :: Packet -> Header [getPacketAttributes] :: Packet -> [PacketAttribute] data PacketType AccessRequest :: PacketType AccessAccept :: PacketType AccessReject :: PacketType AccountingRequest :: PacketType AccountingResponse :: PacketType AccessChallenge :: PacketType StatusServer :: PacketType StatusClient :: PacketType data PacketAttribute UserNameAttribute :: ByteString -> PacketAttribute [getUserNameAttribute] :: PacketAttribute -> ByteString UserPasswordAttribute :: ByteString -> PacketAttribute [getUserPasswordAttribute] :: PacketAttribute -> ByteString CHAPPassword :: Word8 -> ByteString -> PacketAttribute [getCHAPIdentity] :: PacketAttribute -> Word8 [getCHAPPasswordAttribute] :: PacketAttribute -> ByteString NASIPAddress :: IPv4 -> PacketAttribute [getNASIPAddress] :: PacketAttribute -> IPv4 NASIPv6Address :: IPv6 -> PacketAttribute [getNASIPv6Address] :: PacketAttribute -> IPv6 NASPortAttribute :: Word32 -> PacketAttribute [getNASPortAttribute] :: PacketAttribute -> Word32 ServiceTypeAttribute :: ServiceType -> PacketAttribute [getServiceTypeAttribute] :: PacketAttribute -> ServiceType FramedProtocolAttribute :: FramedProtocol -> PacketAttribute [getFramedProtocolAttribute] :: PacketAttribute -> FramedProtocol FramedIPAddressAttribute :: IPv4 -> PacketAttribute [getFramedIPAddressAttribute] :: PacketAttribute -> IPv4 FramedIPNetmaskAttribute :: IPv4 -> PacketAttribute [getFramedIPNetmaskAttribute] :: PacketAttribute -> IPv4 FramedRoutingAttribute :: FramedRouting -> PacketAttribute [getFramedRoutingAttribute] :: PacketAttribute -> FramedRouting FramedInterfaceIdAttribute :: Word64 -> PacketAttribute [getFramedInterfaceIdAttribute] :: PacketAttribute -> Word64 FramedIPv6Prefix :: Int8 -> IPv6 -> PacketAttribute [getFramedIPv6PrefixLength] :: PacketAttribute -> Int8 [getFramedIPv6Prefix] :: PacketAttribute -> IPv6 FramedIPv6Route :: ByteString -> PacketAttribute [getFramedIPv6RouteAttribute] :: PacketAttribute -> ByteString FramedIPv6Pool :: ByteString -> PacketAttribute [getFramedIPv6PoolAttribute] :: PacketAttribute -> ByteString FilterIdAttribute :: ByteString -> PacketAttribute [getFilterIdAttribute] :: PacketAttribute -> ByteString FramedMTUAttribute :: Word32 -> PacketAttribute [getFramedMTUAttribute] :: PacketAttribute -> Word32 FramedCompressionAttribute :: FramedCompression -> PacketAttribute [getFramedCompressionAttribute] :: PacketAttribute -> FramedCompression LoginIPHostAttribute :: IPv4 -> PacketAttribute [getLoginIPHostAttribute] :: PacketAttribute -> IPv4 LoginIPv6HostAttribute :: IPv6 -> PacketAttribute [getLoginIPv6HostAttribute] :: PacketAttribute -> IPv6 LoginServiceAttribute :: LoginService -> PacketAttribute [getLoginServiceAttribute] :: PacketAttribute -> LoginService LoginTCPPortAttribute :: Word32 -> PacketAttribute [getLoginTCPPortAttribute] :: PacketAttribute -> Word32 ReplyMessageAttribute :: ByteString -> PacketAttribute [getReplyMessageAttribute] :: PacketAttribute -> ByteString CallbackNumberAttribute :: ByteString -> PacketAttribute [getCallbackNumberAttribute] :: PacketAttribute -> ByteString CallbackIdAttribute :: ByteString -> PacketAttribute [getCallbackIdAttribute] :: PacketAttribute -> ByteString FramedRouteAttribute :: ByteString -> PacketAttribute [getFramedRouteAttribute] :: PacketAttribute -> ByteString FramedIPXNetworkAttribute :: Word32 -> PacketAttribute [getFramedIPXNetworkAttribute] :: PacketAttribute -> Word32 StateAttribute :: ByteString -> PacketAttribute [getStateAttribute] :: PacketAttribute -> ByteString ClassAttribute :: ByteString -> PacketAttribute [getClassAttribute] :: PacketAttribute -> ByteString VendorSpecificAttribute :: Word32 -> ByteString -> PacketAttribute [getVendorSpecificAttributeId] :: PacketAttribute -> Word32 [getVendorSpecificAttribute] :: PacketAttribute -> ByteString SessionTimeoutAttribute :: Word32 -> PacketAttribute [getSessionTimeoutAttribute] :: PacketAttribute -> Word32 IdleTimeoutAttribute :: Word32 -> PacketAttribute [getIdleTimeoutAttribute] :: PacketAttribute -> Word32 TerminationActionAttribute :: TerminationAction -> PacketAttribute [getTerminationActionAttribute] :: PacketAttribute -> TerminationAction CalledStationIdAttribute :: ByteString -> PacketAttribute [getCalledStationIdAttribute] :: PacketAttribute -> ByteString CallingStationIdAttribute :: ByteString -> PacketAttribute [getCallingStationIdAttribute] :: PacketAttribute -> ByteString NASIdentifierAttribute :: ByteString -> PacketAttribute [getNASIdentifierAttribute] :: PacketAttribute -> ByteString ProxyStateAttribute :: ByteString -> PacketAttribute [getProxyStateAttribute] :: PacketAttribute -> ByteString LoginLATServiceAttribute :: ByteString -> PacketAttribute [getLoginLATServiceAttribute] :: PacketAttribute -> ByteString LoginLATNodeAttribute :: ByteString -> PacketAttribute [getLoginLATNodeAttribute] :: PacketAttribute -> ByteString LoginLATGroupAttribute :: ByteString -> PacketAttribute [getLoginLATGroupAttribute] :: PacketAttribute -> ByteString FramedAppleTalkLinkAttribute :: Word32 -> PacketAttribute [getFramedAppleTalkLinkAttribute] :: PacketAttribute -> Word32 FramedAppleTalkNetworkAttribute :: Word32 -> PacketAttribute [getFramedAppleTalkNetworkAttribute] :: PacketAttribute -> Word32 FramedAppleTalkZoneAttribute :: ByteString -> PacketAttribute [getFramedAppleTalkZoneAttribute] :: PacketAttribute -> ByteString CHAPChallengeAttribute :: ByteString -> PacketAttribute [getCHAPChallengeAttribute] :: PacketAttribute -> ByteString NASPortTypeAttribute :: NASPortType -> PacketAttribute [getNASPortTypeAttribute] :: PacketAttribute -> NASPortType PortLimitAttribute :: Word32 -> PacketAttribute [getPortLimitAttribute] :: PacketAttribute -> Word32 LoginLATPortAttribute :: ByteString -> PacketAttribute [getLoginLATPortAttribute] :: PacketAttribute -> ByteString AccountInputGigawordsAttribute :: Word32 -> PacketAttribute [getAccountInputGigawordsAttribute] :: PacketAttribute -> Word32 AccountOutputGigawordsAttribute :: Word32 -> PacketAttribute [getAccountOutputGigawordsAttribute] :: PacketAttribute -> Word32 EventTimeStampAttribute :: Word32 -> PacketAttribute [getEventTimeStampAttribute] :: PacketAttribute -> Word32 ARAPPasswordAttribute :: ByteString -> PacketAttribute [getARAPPasswordAttribute] :: PacketAttribute -> ByteString ARAPFeaturesAttribute :: ByteString -> PacketAttribute [getARAPFeaturesAttribute] :: PacketAttribute -> ByteString ARAPZoneAccessAttribute :: ARAPZoneAccess -> PacketAttribute [getARAPZoneAccessAttribute] :: PacketAttribute -> ARAPZoneAccess ARAPSecurityAttribute :: Word32 -> PacketAttribute [getARAPSecurityAttribute] :: PacketAttribute -> Word32 ARAPSecurityDataAttribute :: ByteString -> PacketAttribute [getARAPSecurityDataAttribute] :: PacketAttribute -> ByteString PasswordRetryAttribute :: Word32 -> PacketAttribute [getPasswordRetryAttribute] :: PacketAttribute -> Word32 PromptAttribute :: Word32 -> PacketAttribute [getPromptAttribute] :: PacketAttribute -> Word32 ConnectInfoAttribute :: ByteString -> PacketAttribute [getConnectInfoAttribute] :: PacketAttribute -> ByteString ConfigurationTokenAttribute :: ByteString -> PacketAttribute [getConfigurationTokenAttribute] :: PacketAttribute -> ByteString EAPMessageAttribute :: ByteString -> PacketAttribute [getEAPMessageAttribute] :: PacketAttribute -> ByteString MessageAuthenticatorAttribute :: ByteString -> PacketAttribute [getMessageAuthenticatorAttribute] :: PacketAttribute -> ByteString ARAPChallengeResponseAttribute :: ByteString -> PacketAttribute [getARAPChallengeResponseAttribute] :: PacketAttribute -> ByteString AcctInterimIntervalAttribute :: Word32 -> PacketAttribute [getAcctInterimIntervalAttribute] :: PacketAttribute -> Word32 NASPortIdAttribute :: ByteString -> PacketAttribute [getNASPortIdAttribute] :: PacketAttribute -> ByteString FramedPoolAttribute :: ByteString -> PacketAttribute [getFramedPoolAttribute] :: PacketAttribute -> ByteString data ServiceType LoginService :: ServiceType FramedService :: ServiceType CallbackLoginService :: ServiceType CallbackFramedService :: ServiceType OutboundService :: ServiceType AdministrativeService :: ServiceType NASPromptService :: ServiceType AuthenticateOnlyService :: ServiceType CallbackNASPrompt :: ServiceType CallCheckService :: ServiceType CallbackAdministrativeService :: ServiceType data FramedProtocol PPPFramedProtocol :: FramedProtocol SLIPFramedProtocol :: FramedProtocol ARAPFramedProtocol :: FramedProtocol GandalfFramedProtocol :: FramedProtocol XylogicsFramedProtocol :: FramedProtocol X75FramedProtocol :: FramedProtocol data FramedRouting NoneFramedRouting :: FramedRouting SendFramedRouting :: FramedRouting ListenFramedRouting :: FramedRouting SendAndListenFramedRouting :: FramedRouting data FramedCompression NoCompression :: FramedCompression VJTCPIPHeaderCompression :: FramedCompression IPXHeaderCompression :: FramedCompression StacLZSCompression :: FramedCompression data LoginService TelnetService :: LoginService RloginService :: LoginService TCPClearService :: LoginService PortMasterService :: LoginService LATService :: LoginService X25PADService :: LoginService X25T3POSService :: LoginService UnusedService :: LoginService TCPClearQuietService :: LoginService data TerminationAction DefaultTerminationAction :: TerminationAction RADIUSRequestTerminationAction :: TerminationAction data NASPortType AsyncNASPort :: NASPortType SyncNASPort :: NASPortType ISDNSyncPort :: NASPortType ISDNAsyncV120Port :: NASPortType VirtualNASPort :: NASPortType PIAFSNASPort :: NASPortType HDLCClearChannelNASPort :: NASPortType X25NASPort :: NASPortType X75NASPort :: NASPortType G3FaxNASPort :: NASPortType SDSLNASPort :: NASPortType ADSLCAPNASPort :: NASPortType ADSLDMTNASPort :: NASPortType IDSLNASPort :: NASPortType EthernetNASPort :: NASPortType XDSLNASPort :: NASPortType CableNASPort :: NASPortType WirelessOtherNASPort :: NASPortType WirelessIEEE80211NASPort :: NASPortType data ARAPZoneAccess DefaultZoneOnlyARAPAccess :: ARAPZoneAccess UseZoneFilterInclusivelyARAPAccess :: ARAPZoneAccess UseZoneFilterExclusivelyARAPAccess :: ARAPZoneAccess instance GHC.Classes.Eq Network.RADIUS.Types.Packet instance GHC.Show.Show Network.RADIUS.Types.Packet instance Data.Data.Data Network.RADIUS.Types.PacketAttribute instance GHC.Classes.Eq Network.RADIUS.Types.PacketAttribute instance GHC.Show.Show Network.RADIUS.Types.PacketAttribute instance Data.Data.Data Network.RADIUS.Types.ARAPZoneAccess instance GHC.Classes.Eq Network.RADIUS.Types.ARAPZoneAccess instance GHC.Show.Show Network.RADIUS.Types.ARAPZoneAccess instance Data.Data.Data Network.RADIUS.Types.NASPortType instance GHC.Enum.Enum Network.RADIUS.Types.NASPortType instance GHC.Classes.Eq Network.RADIUS.Types.NASPortType instance GHC.Show.Show Network.RADIUS.Types.NASPortType instance Data.Data.Data Network.RADIUS.Types.TerminationAction instance GHC.Enum.Enum Network.RADIUS.Types.TerminationAction instance GHC.Classes.Eq Network.RADIUS.Types.TerminationAction instance GHC.Show.Show Network.RADIUS.Types.TerminationAction instance Data.Data.Data Network.RADIUS.Types.LoginService instance GHC.Enum.Enum Network.RADIUS.Types.LoginService instance GHC.Classes.Eq Network.RADIUS.Types.LoginService instance GHC.Show.Show Network.RADIUS.Types.LoginService instance Data.Data.Data Network.RADIUS.Types.FramedCompression instance GHC.Enum.Enum Network.RADIUS.Types.FramedCompression instance GHC.Classes.Eq Network.RADIUS.Types.FramedCompression instance GHC.Show.Show Network.RADIUS.Types.FramedCompression instance Data.Data.Data Network.RADIUS.Types.FramedRouting instance GHC.Enum.Enum Network.RADIUS.Types.FramedRouting instance GHC.Classes.Eq Network.RADIUS.Types.FramedRouting instance GHC.Show.Show Network.RADIUS.Types.FramedRouting instance Data.Data.Data Network.RADIUS.Types.FramedProtocol instance GHC.Classes.Eq Network.RADIUS.Types.FramedProtocol instance GHC.Show.Show Network.RADIUS.Types.FramedProtocol instance Data.Data.Data Network.RADIUS.Types.ServiceType instance GHC.Classes.Eq Network.RADIUS.Types.ServiceType instance GHC.Show.Show Network.RADIUS.Types.ServiceType instance GHC.Classes.Eq Network.RADIUS.Types.Header instance GHC.Show.Show Network.RADIUS.Types.Header instance GHC.Classes.Eq Network.RADIUS.Types.PacketType instance GHC.Show.Show Network.RADIUS.Types.PacketType instance GHC.Enum.Enum Network.RADIUS.Types.PacketType instance GHC.Enum.Enum Network.RADIUS.Types.ServiceType instance GHC.Enum.Enum Network.RADIUS.Types.FramedProtocol instance GHC.Enum.Enum Network.RADIUS.Types.ARAPZoneAccess -- | This module provides Binary instances for the RADIUS Packet type and -- attributes. So you basically decode a (lazy) ByteString and get a -- RADIUS Packet back or you can encode a RADIUS Packet to a ByteString, -- which you can then send on the wire as is, etc. Simple as that. module Network.RADIUS.Encoding -- | Self explanatory. It can be useful when reading a RADIUS packet from a -- socket for example, so one can retrieve the packet header (containing -- the packet length) first and then use that to figure out how much data -- is left to read radiusHeaderSize :: Word16 -- | Fixed authenticator length as per RFC 2865 authenticatorLength :: Int64 -- | Allows decoding of a RADIUS header in the Get Monad decodeHeader :: Get Header -- | Given an already decoded header, this function can be used to decode -- the complete packet from the available data decodePacket :: Header -> Get Packet -- | Used internally to encode a list of RADIUS attributes. You probably -- don't need this. encodeAttributes :: [PacketAttribute] -> ByteString -- | Used internally to decode a list of RADIUS attributes. You probably -- don't need this. decodeAttributes :: [PacketAttribute] -> Get [PacketAttribute] -- | For internal use putAttributeStr :: Word8 -> ByteString -> Put -- | For internal use putAttribute :: (Binary a) => Word8 -> a -> Put getAttribute :: Word8 -> Get PacketAttribute -- | For internal use. getAttributeStr :: Get ByteString -- | For internal use. getAttributeValue :: (Binary a) => Get a -- | For internal use. putEnum :: (Enum a) => a -> Put -- | For internal use. getEnum :: (Enum a) => Get a -- | For internal use. fromEnum32 :: (Enum a) => Word32 -> a instance Data.Binary.Class.Binary Network.RADIUS.Types.Packet instance Data.Binary.Class.Binary Network.RADIUS.Types.PacketType instance Data.Binary.Class.Binary Data.IP.Addr.IPv4 instance Data.Binary.Class.Binary Data.IP.Addr.IPv6 instance Data.Binary.Class.Binary Network.RADIUS.Types.PacketAttribute instance Data.Binary.Class.Binary Network.RADIUS.Types.ServiceType instance Data.Binary.Class.Binary Network.RADIUS.Types.FramedProtocol instance Data.Binary.Class.Binary Network.RADIUS.Types.FramedRouting instance Data.Binary.Class.Binary Network.RADIUS.Types.FramedCompression instance Data.Binary.Class.Binary Network.RADIUS.Types.LoginService instance Data.Binary.Class.Binary Network.RADIUS.Types.TerminationAction instance Data.Binary.Class.Binary Network.RADIUS.Types.NASPortType instance Data.Binary.Class.Binary Network.RADIUS.Types.ARAPZoneAccess