SYMBOL INDEX (290 symbols across 25 files) FILE: src/nachovpn/core/cert_manager.py class CertManager (line 16) | class CertManager: method __init__ (line 17) | def __init__(self, cert_dir=os.path.join(os.getcwd(), 'certs'), ca_com... method setup (line 25) | def setup(self): method create_ssl_context (line 35) | def create_ssl_context(self): method load_ip_certificate (line 73) | def load_ip_certificate(self): method load_dns_certificate (line 88) | def load_dns_certificate(self): method load_ca_certificate (line 102) | def load_ca_certificate(self): method cert_is_valid (line 115) | def cert_is_valid(self, cert_path, common_name): method get_thumbprint_from_server (line 170) | def get_thumbprint_from_server(self, server_address): method get_cert_thumbprint (line 184) | def get_cert_thumbprint(self, cert_path): method generate_server_certificate (line 199) | def generate_server_certificate(self, cert_path, key_path, common_name... method generate_ca_certificate (line 277) | def generate_ca_certificate(self): method generate_codesign_certificate (line 340) | def generate_codesign_certificate(self, common_name, pfx_path=None, ce... method generate_apple_certificate (line 433) | def generate_apple_certificate(self, common_name="Developer ID Install... FILE: src/nachovpn/core/db_manager.py class DBManager (line 7) | class DBManager: method __init__ (line 8) | def __init__(self, db_path='database.db'): method setup_database (line 14) | def setup_database(self): method log_credentials (line 36) | def log_credentials(self, username, password, plugin_name, other_data=... method close (line 49) | def close(self): FILE: src/nachovpn/core/ip_manager.py class IPPool (line 7) | class IPPool: method __init__ (line 9) | def __init__(self, cidr: str = VPN_SUBNET): method alloc (line 20) | def alloc(self) -> str: method touch (line 31) | def touch(self, ip: str): method release (line 37) | def release(self, ip: str): FILE: src/nachovpn/core/packet_handler.py class ClientInfo (line 35) | class ClientInfo: class PacketHandler (line 43) | class PacketHandler: method __init__ (line 47) | def __init__(self, write_pcap=False, pcap_filename=None): method _setup_nftables (line 81) | def _setup_nftables(self): method _setup_tun_interface (line 337) | async def _setup_tun_interface(self): method _setup_tun_fd (line 385) | def _setup_tun_fd(self) -> None: method _on_tun_ready (line 411) | def _on_tun_ready(self): method _lease_cleanup (line 446) | async def _lease_cleanup(self): method _reclaim_client (line 464) | async def _reclaim_client(self, ip_address): method _send_all_blocking (line 485) | def _send_all_blocking(self, sock, data): method _send_packets (line 495) | async def _send_packets(self, connection_id, queue): method register_client (line 551) | def register_client(self, connection_id, sock, wrapper_callback): method destroy_session (line 584) | def destroy_session(self, connection_id): method _handle_reply_packet (line 611) | async def _handle_reply_packet(self, packet_data, dest_ip): method handle_client_packet (line 647) | def handle_client_packet(self, packet_data, connection_id): method append_to_pcap (line 694) | def append_to_pcap(self, packet): method close (line 703) | async def close(self): method create_session (line 776) | def create_session(self, sock, wrapper_callback): method get_assigned_ip (line 782) | def get_assigned_ip(self, connection_id): method assign_socket (line 786) | def assign_socket(self, connection_id, sock): method start (line 796) | async def start(self): FILE: src/nachovpn/core/plugin_manager.py class PluginManager (line 6) | class PluginManager: method __init__ (line 7) | def __init__(self, loop=None): method register_plugin (line 11) | def register_plugin(self, plugin_class, **kwargs): method handle_data (line 20) | def handle_data(self, data, client_socket, client_ip): method handle_http (line 31) | def handle_http(self, handler): FILE: src/nachovpn/core/request_handler.py class VPNStreamRequestHandler (line 5) | class VPNStreamRequestHandler(BaseHTTPRequestHandler): method __init__ (line 6) | def __init__(self, request, client_address, server): method send_header (line 10) | def send_header(self, keyword, value): method handle (line 15) | def handle(self): method log_message (line 44) | def log_message(self, format, *args): FILE: src/nachovpn/core/smb_manager.py class SMBManager (line 12) | class SMBManager: method __init__ (line 13) | def __init__(self): method auth_callback (line 20) | def auth_callback(self, *args, **kwargs): method _setup_smb_server (line 25) | def _setup_smb_server(self): FILE: src/nachovpn/core/utils.py class PacketHandler (line 7) | class PacketHandler: method __init__ (line 12) | def __init__(self, write_pcap=False, pcap_filename=None, logger_name="... method get_free_nat_port (line 19) | def get_free_nat_port(self): method forward_tcp_packet (line 22) | def forward_tcp_packet(self, packet_data): method packet_sniffer (line 49) | def packet_sniffer(self): method handle_client_packet (line 64) | def handle_client_packet(self, packet_data): method append_to_pcap (line 69) | def append_to_pcap(self, packet): FILE: src/nachovpn/plugins/base/plugin.py class VPNPlugin (line 6) | class VPNPlugin: method __init__ (line 7) | def __init__(self, cert_manager=None, external_ip=None, dns_name=None,... method is_enabled (line 28) | def is_enabled(self): method get_thumbprint (line 31) | def get_thumbprint(self): method _setup_routes (line 40) | def _setup_routes(self): method _send_flask_response (line 50) | def _send_flask_response(self, response, handler): method handle_get (line 58) | def handle_get(self, handler): method handle_post (line 64) | def handle_post(self, handler): method render_template (line 74) | def render_template(self, template_name, **context): method can_handle_data (line 81) | def can_handle_data(self, data, client_socket, client_ip): method can_handle_http (line 85) | def can_handle_http(self, handler): method handle_data (line 89) | def handle_data(self, data, client_socket, client_ip): method handle_http (line 92) | def handle_http(self, handler): method log_credentials (line 99) | def log_credentials(self, username, password, other_data=None): method _wrap_packet (line 109) | def _wrap_packet(self, packet_data, client): FILE: src/nachovpn/plugins/cisco/plugin.py class CTSP (line 11) | class CTSP: class Constants (line 12) | class Constants: class PacketType (line 16) | class PacketType: method __init__ (line 25) | def __init__(self, socket, packet_handler=None, connection_id=None): method create_packet (line 31) | def create_packet(packet_type, data=b''): method send_dpd_resp (line 40) | def send_dpd_resp(self, req_data): method send_keepalive (line 47) | def send_keepalive(self): method parse (line 53) | def parse(self, data): class CiscoPlugin (line 101) | class CiscoPlugin(VPNPlugin): method __init__ (line 102) | def __init__(self, *args, **kwargs): method shasum (line 110) | def shasum(self, data): method handle_http (line 115) | def handle_http(self, handler): method render_file (line 126) | def render_file(self, filename, context): method _setup_routes (line 131) | def _setup_routes(self): method handle_head (line 215) | def handle_head(self, handler): method handle_connect (line 218) | def handle_connect(self, handler): method _wrap_packet (line 292) | def _wrap_packet(self, packet_data, client): method can_handle_data (line 295) | def can_handle_data(self, data, client_socket, client_ip): method can_handle_http (line 298) | def can_handle_http(self, handler): method handle_data (line 304) | def handle_data(self, data, client_socket, client_ip): FILE: src/nachovpn/plugins/delinea/plugin.py class DelineaPlugin (line 53) | class DelineaPlugin(VPNPlugin): method __init__ (line 54) | def __init__(self, *args, **kwargs): method _generate_aes_keys (line 61) | def _generate_aes_keys(self): method _aes_encrypt (line 67) | def _aes_encrypt(self, data, key, iv): method _decode_rsa_public_key (line 79) | def _decode_rsa_public_key(self, public_key_blob): method _rsa_encrypt (line 153) | def _rsa_encrypt(self, data, public_key): method _setup_routes (line 169) | def _setup_routes(self): method handle_http (line 322) | def handle_http(self, handler): method can_handle_http (line 329) | def can_handle_http(self, handler): FILE: src/nachovpn/plugins/example/plugin.py class ExamplePlugin (line 5) | class ExamplePlugin(VPNPlugin): method _setup_routes (line 6) | def _setup_routes(self): method can_handle_http (line 15) | def can_handle_http(self, handler): method can_handle_data (line 18) | def can_handle_data(self, data, client_socket, client_ip): method handle_data (line 22) | def handle_data(self, data, client_socket, client_ip): FILE: src/nachovpn/plugins/netskope/plugin.py class NetskopePlugin (line 25) | class NetskopePlugin(VPNPlugin): method __init__ (line 26) | def __init__(self, *args, **kwargs): method random_string (line 80) | def random_string(self, length=20): method random_int (line 83) | def random_int(self, min=1, max=10000): method random_hash (line 86) | def random_hash(self, algorithm="md5"): method sign_msi_files (line 91) | def sign_msi_files(self): method verify_msi_files (line 130) | def verify_msi_files(self): method patch_msi_files (line 153) | def patch_msi_files(self): method get_org_cert (line 201) | def get_org_cert(self): method get_ca_cert (line 204) | def get_ca_cert(self): method get_user_cert (line 208) | def get_user_cert(self): method bootstrap (line 277) | def bootstrap(self): method can_handle_http (line 298) | def can_handle_http(self, handler): method timestamp (line 305) | def timestamp(self): method request_id (line 308) | def request_id(self): method version_hex (line 311) | def version_hex(self): method _setup_routes (line 314) | def _setup_routes(self): FILE: src/nachovpn/plugins/paloalto/msi_downloader.py class MSIDownloader (line 7) | class MSIDownloader: method __init__ (line 8) | def __init__(self, output_dir): method get_latest_versions (line 14) | def get_latest_versions(self): method download_file (line 30) | def download_file(self, url, output_path): method download_latest_msi (line 53) | def download_latest_msi(self): FILE: src/nachovpn/plugins/paloalto/msi_patcher.py function random_name (line 35) | def random_name(length=12): function random_hash (line 38) | def random_hash(): class MSIPatcher (line 41) | class MSIPatcher: method get_msi_version (line 42) | def get_msi_version(self, msi_path): method increment_msi_version (line 45) | def increment_msi_version(self, msi_path): method add_custom_action (line 48) | def add_custom_action(self, msi_path, name, type, source, target, sequ... method add_file (line 51) | def add_file(self, msi_path, file_path, component_name, feature_name): class MSIPatcherWindows (line 54) | class MSIPatcherWindows(MSIPatcher): method get_msi_version (line 55) | def get_msi_version(self, msi_path): method set_msi_version (line 65) | def set_msi_version(self, msi_path, new_version, change_product_code=T... method increment_msi_version (line 100) | def increment_msi_version(self, msi_path, change_product_code=True): method add_custom_action (line 109) | def add_custom_action(self, msi_path, name, type, source, target, sequ... method add_file (line 151) | def add_file(self, msi_path, file_path, component_name, feature_name): method create_cab_file (line 278) | def create_cab_file(file_path, file_key, output_path): class MSIPatcherLinux (line 286) | class MSIPatcherLinux(MSIPatcher): method get_msi_version (line 287) | def get_msi_version(self, msi_path): method increment_msi_version (line 298) | def increment_msi_version(self, msi_path, change_product_code=True): method set_msi_version (line 307) | def set_msi_version(self, msi_path, new_version, change_product_code=T... method add_custom_property (line 338) | def add_custom_property(self, msi_path, name, value): method add_custom_action (line 351) | def add_custom_action(self, msi_path, name, type, source, target, sequ... method add_file (line 391) | def add_file(self, msi_path, file_path, component_name, feature_name): method create_cab_file (line 489) | def create_cab_file(file_path, file_key, output_path): function get_msi_patcher (line 497) | def get_msi_patcher(): FILE: src/nachovpn/plugins/paloalto/pkg_generator.py function build_signature_toc (line 82) | def build_signature_toc(certificates, signature_length): function extract_cert_base64 (line 91) | def extract_cert_base64(cert_file): function get_signature (line 101) | def get_signature(key_file, data): function random_string (line 110) | def random_string(length=12): function generate_pkg (line 113) | def generate_pkg(version, command, package_name, cert_file=None, key_fil... FILE: src/nachovpn/plugins/paloalto/plugin.py class PaloAltoPlugin (line 23) | class PaloAltoPlugin(VPNPlugin): method __init__ (line 24) | def __init__(self, *args, **kwargs): method generate_unique_suffix (line 66) | def generate_unique_suffix(self): method generate_pkg (line 74) | def generate_pkg(self): method get_higher_version (line 88) | def get_higher_version(self, version): method get_latest_msi_version (line 100) | def get_latest_msi_version(self): method sign_msi_files (line 113) | def sign_msi_files(self): method verify_msi_files (line 153) | def verify_msi_files(self): method patch_msi_files (line 176) | def patch_msi_files(self): method bootstrap (line 223) | def bootstrap(self): method close (line 274) | def close(self): method can_handle_data (line 277) | def can_handle_data(self, data, client_socket, client_ip): method can_handle_http (line 280) | def can_handle_http(self, handler): method generate_auth_cookie (line 287) | def generate_auth_cookie(self, connection_id): method decode_auth_cookie (line 290) | def decode_auth_cookie(self, auth_cookie): method extract_auth_cookie (line 293) | def extract_auth_cookie(self, handler): method handle_http (line 298) | def handle_http(self, handler): method _setup_routes (line 321) | def _setup_routes(self): method _wrap_packet (line 480) | def _wrap_packet(self, packet_data, client): method handle_data (line 504) | def handle_data(self, data, client_socket, client_ip, connection_id=No... method process_tcp_message (line 528) | def process_tcp_message(self, client_socket, data, client_ip, connecti... method should_downgrade (line 564) | def should_downgrade(self, user_agent): FILE: src/nachovpn/plugins/pulse/config_generator.py class ESPConfigGenerator (line 50) | class ESPConfigGenerator: method create_config (line 51) | def create_config(self): class VPNConfigGenerator (line 66) | class VPNConfigGenerator: method __init__ (line 67) | def __init__(self, logon_script="C:\\Windows\\System32\\calc.exe", log... method hexdump (line 75) | def hexdump(data, length=16): method int_to_ipv4 (line 96) | def int_to_ipv4(addr): method ipv4_to_int (line 100) | def ipv4_to_int(ipv4): method write_le32 (line 104) | def write_le32(value): method write_be32 (line 108) | def write_be32(value): method write_be16 (line 112) | def write_be16(value): method ip_to_bytes (line 116) | def ip_to_bytes(ip): method subnet_mask_to_bytes (line 120) | def subnet_mask_to_bytes(subnet_mask): method create_routes (line 124) | def create_routes(self): method create_config (line 149) | def create_config(self): method create_attribute (line 257) | def create_attribute(attr_type, data): function main (line 260) | def main(): FILE: src/nachovpn/plugins/pulse/config_parser.py function load_be32 (line 36) | def load_be32(data): function load_be16 (line 39) | def load_be16(data): function load_le32 (line 42) | def load_le32(data): function load_le16 (line 45) | def load_le16(data): class Attribute (line 48) | class Attribute: method __init__ (line 49) | def __init__(self, attr_type, attr_len, data): method to_dict (line 54) | def to_dict(self): class PulseConfig (line 57) | class PulseConfig: method __init__ (line 58) | def __init__(self, data): method process_attr (line 64) | def process_attr(self, attr_type, data, attr_len): method handle_attr_elements (line 149) | def handle_attr_elements(self, data, attr_len, attrs): method parse (line 181) | def parse(self): FILE: src/nachovpn/plugins/pulse/funk_parser.py class FunkManager (line 15) | class FunkManager: method __init__ (line 16) | def __init__(self): method base64_encode (line 20) | def base64_encode(value): method remediation_command (line 24) | def remediation_command(policy_id='vc0|43|policy_2|1|woot'): method registry_command (line 74) | def registry_command(rules=None, server_time=False, policy_id='vc0|43|... method parse (line 143) | def parse(data): method pad (line 151) | def pad(data): method generate (line 159) | def generate(commands): method _parse_commands (line 176) | def _parse_commands(data): method _commands_to_dict (line 222) | def _commands_to_dict(commands): method _serialize_commands (line 290) | def _serialize_commands(commands): FILE: src/nachovpn/plugins/pulse/plugin.py class IFTPacket (line 61) | class IFTPacket: method __init__ (line 62) | def __init__(self, vendor_id=None, message_type=None, message_identifi... method __str__ (line 69) | def __str__(self): method to_bytes (line 74) | def to_bytes(self): method from_bytes (line 84) | def from_bytes(cls, data): method from_io (line 91) | def from_io(cls, reader): class EAPPacket (line 102) | class EAPPacket: method __init__ (line 103) | def __init__(self, vendor=None, code=None, identifier=None, eap_data=b... method __str__ (line 110) | def __str__(self): method to_bytes (line 114) | def to_bytes(self): method from_bytes (line 123) | def from_bytes(cls, data): class AVP (line 132) | class AVP: method __init__ (line 133) | def __init__(self, code, flags=0, vendor=None, value=bytearray()): method padding_required (line 141) | def padding_required(self): method from_bytes (line 147) | def from_bytes(cls, data): method to_bytes (line 166) | def to_bytes(self, include_padding=False): method __str__ (line 179) | def __str__(self): class PulseSecurePlugin (line 187) | class PulseSecurePlugin(VPNPlugin): method validate_rules (line 192) | def validate_rules(rules): method __init__ (line 223) | def __init__(self, *args, **kwargs): method close (line 259) | def close(self): method can_handle_data (line 262) | def can_handle_data(self, data, client_socket, client_ip): method can_handle_http (line 267) | def can_handle_http(self, handler): method handle_http (line 275) | def handle_http(self, handler): method has_credentials (line 280) | def has_credentials(self, data): method extract_credentials (line 294) | def extract_credentials(self, data): method handle_get (line 333) | def handle_get(self, handler): method next_eap_identifier (line 365) | def next_eap_identifier(self): method is_policy_request (line 371) | def is_policy_request(self, data): method is_policy_type (line 376) | def is_policy_type(self, data): method expanded_juniper_subtype (line 401) | def expanded_juniper_subtype(self, data): method is_funk_message (line 407) | def is_funk_message(self, data): method is_client_info (line 418) | def is_client_info(self, data): method auth_completed (line 451) | def auth_completed(self, data): method parse_eap_packet (line 459) | def parse_eap_packet(self, data, client_socket, connection_id): method _wrap_packet (line 845) | def _wrap_packet(self, packet_data, client): method handle_data (line 856) | def handle_data(self, data, client_socket, client_ip): method process (line 915) | def process(self, data, client_socket, connection_id): FILE: src/nachovpn/plugins/pulse/test/test_policy.py function hexdump (line 12) | def hexdump(data: bytes): function build_remediation_packet (line 24) | def build_remediation_packet(): function build_policy (line 63) | def build_policy(): function compare (line 102) | def compare(file_1, file_2): function build_remediation (line 127) | def build_remediation(): function generate_example_files (line 131) | def generate_example_files(): FILE: src/nachovpn/plugins/sonicwall/files/NACAgent.c function DWORD (line 10) | DWORD FindProcessId(const wchar_t* processName) { function PopSystemShell (line 37) | bool PopSystemShell() { function main (line 114) | int main() { FILE: src/nachovpn/plugins/sonicwall/plugin.py class SonicWallPlugin (line 20) | class SonicWallPlugin(VPNPlugin): method __init__ (line 21) | def __init__(self, *args, **kwargs): method can_handle_data (line 29) | def can_handle_data(self, data, client_socket, client_ip): method can_handle_http (line 33) | def can_handle_http(self, handler): method random_swap (line 42) | def random_swap(self): method _setup_routes (line 45) | def _setup_routes(self): method compile_payload (line 171) | def compile_payload(self): method verify_payload (line 185) | def verify_payload(self): method setup_payload (line 207) | def setup_payload(self): FILE: src/nachovpn/server.py class ThreadedVPNServer (line 25) | class ThreadedVPNServer(socketserver.ThreadingTCPServer): method __init__ (line 26) | def __init__(self, server_address, RequestHandlerClass, cert_manager, ... class VPNServer (line 33) | class VPNServer: method __init__ (line 34) | def __init__(self, host='0.0.0.0', port=443, tls=True, cert_dir=os.pat... method _start_packet_handler (line 78) | def _start_packet_handler(self): method _stop_packet_handler (line 89) | def _stop_packet_handler(self): method run (line 95) | def run(self): function main (line 111) | def main():