Crate openvpn_parser

Source
Expand description

§openvpn-parser

License: MIT Apache License 2.0 Build Status Crates.io Version

§Overview

openvpn-parser is a parser for the (OpenVPN) 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 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:

Re-exports§

pub use nom;

Structs§

Opcode
OpenVPNHdr
OpenVPN packet header
OpenVPNPacket
OpenVPN packet
PAck
Payload for P_ACK messages
PControl
Payload for P_CONTROL messages
PData
Payload for P_DATA messages

Enums§

Payload
Payload for OpenVPN data

Functions§

parse_openvpn_header_tcp
parse_openvpn_header_udp
parse_openvpn_msg_pack
parse_openvpn_msg_payload
parse_openvpn_msg_pcontrol
parse_openvpn_tcp
Parse an OpenVPN packet in TCP
parse_openvpn_udp
Parse an OpenVPN packet in UDP