Skip to content

AndrewPiroli/tacp_rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A TACACS+ Protocol Parser and Server.

Current status: Alpha

Not recommended for production use (yet).

My style is to avoid external dependencies when reasonable, I am not afraid of nightly features or using unsafe.

Main crate: tacp

Contains the protocol definitions, a zero-copy parser/decoder, and an expiramental encoder. no_std always, but does require alloc and a nightly compiler.

The encoding side of things is new and expiramental, so it is behind a feature flag (dst-construct) and all methods are marked unsafe.

RFC Compliance Status: Mostly compliant - where it counts at least.

ROADMAP:

  • Cool name
  • Basic Protocol Implementation
    • Packet parsing
      • "Encryption"
      • Authentication
      • Authorization
      • Accounting
    • Full RFC compliance
  • Documentation
    • RFC info in comments
    • Make doc comments nice
  • Polish things
    • Errors (handling, reporting)
    • Don't crash
    • Custom Allocator Support
    • "Zero-copy" parser
  • Security
    • Usage of unsafe
    • Direct fuzzing
    • Use miri

tserver - Basic testing server

A TACACS+ server with enough features to test most client operations.

tclient - Basic testing client

A basic TACACS+ client that can make requests to a server.

ttest - A WIP testing system

Current features:

  • runs the test client and server against each other.
  • Reads pcap files from the pcap directory and ensures all TACACS+ packets within can be parsed.

Other projects we can test interop with in the future: