1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//! # openvpn-parser
//!
//! [](./LICENSE-MIT)
//! [](./LICENSE-APACHE)
//! [](https://travis-ci.org/rusticata/openvpn-parser)
//! [](https://crates.io/crates/openvpn-parser)
//!
//! ## Overview
//!
//! openvpn-parser is a parser for the ([OpenVPN](https://openvpn.net/)) protocol.
//!
//! It can be used to decode the packet structures, access fields and verify some properties.
//! The content of the `Control` packets uses the TLS protocol, so
//! [tls-parser](https://github.com/rusticata/tls-parser) can be used to decode the messages.
//!
//! *The parser does not decrypt messages.*
//!
//! This crate mostly serves as a demo/example crate for network protocol parsers written using nom, and nom-derive.
//!
//! ## Notes
//!
//! Writen in great pain, due to lack of specifications, and a number of fields
//! defined in a very useless way, like "usually 16 or 20 bytes".
//!
//! Closest thing to specifications:
//!
//! - <https://openvpn.net/index.php/open-source/documentation/security-overview.html>
//! - <http://ipseclab.eit.lth.se/tiki-index.php?page=6.+OpenVPN>
//! - OpenVPN source code
//! - OpenVPN wireshark parser
pub use *;
pub use nom;