Rust RADIUS
Pure (as far as this code goes) implementation of RADIUS in Rust
Rationale behind this project:
- I am getting in love with Rust and would love to use it in my day-to-day job.
- There are a number of small projects involving RADIUS, where I can start using Rust
- However there were no good RADIUS implementations in Rust
- ????
- Profit - now there is one, so I can try to push Rust internally in my team _
Tests
cargo run --example simple_radius_server &
or you can spin up any other RADIUS server of your choicecargo test --verbose
TODO
- Protocol
- dictionary
- dictionary attribute struct
- dictionary struct
- parse dictionary from file
- parse dictionary from string
- dictionary
- review the code to ensure there are no unnecessary allocations, redundant code and etc:
- redesign
run_server()
function (if that's possible) - check that it is well written
- redesign
Notes
- Main core functionality is completed, but there is a chance that I've missed something here and there because it is not needed for my projects yet. If this is the case, raise an issue and I'll see what could be done to get it resolved
- Minimum required version of Rust -
1.45.0
- Big thanks to pyrad and radius-rust-client projects, which helped me to start this project
- Value of Message-Authenticator RadiusAttribute won't be validated, because in RADIUS dictionary it has string type, however it is not valid ASCII string (Message-Authenticator is a HMAC-MD5 hash)