Файловый менеджер - Редактировать - /opt/imh-python/lib/python3.9/site-packages/pyroute2/netlink/generic/__pycache__/wireguard.cpython-39.pyc
Ðазад
a ]�h�0 � @ s d Z ddlZddlZddlZddlmZmZ ddlmZ ddl m Z mZmZm Z ddlmZ ddlmZmZmZmZmZmZ ddlmZ d Zd ZdZdZd ZdZd ZdZ d Z!dZ"dZ#dZ$dZ%dZ&d Z'dZ(d Z)dZ*d Z+dZ,d Z-dZ.dZ/dZ0G dd� de�Z1G dd� de�Z2dS )aJ Usage:: # Imports from pyroute2 import NDB, WireGuard IFNAME = 'wg1' # Create a WireGuard interface with NDB() as ndb: with ndb.interfaces.create(kind='wireguard', ifname=IFNAME) as link: link.add_ip('10.0.0.1/24') link.set(state='up') # Create WireGuard object wg = WireGuard() # Add a WireGuard configuration + first peer peer = {'public_key': 'TGFHcm9zc2VCaWNoZV9DJ2VzdExhUGx1c0JlbGxlPDM=', 'endpoint_addr': '8.8.8.8', 'endpoint_port': 8888, 'persistent_keepalive': 15, 'allowed_ips': ['10.0.0.0/24', '8.8.8.8/32']} wg.set(IFNAME, private_key='RCdhcHJlc0JpY2hlLEplU2VyYWlzTGFQbHVzQm9ubmU=', fwmark=0x1337, listen_port=2525, peer=peer) # Add second peer with preshared key peer = {'public_key': 'RCdBcHJlc0JpY2hlLFZpdmVMZXNQcm9iaW90aXF1ZXM=', 'preshared_key': 'Pz8/V2FudFRvVHJ5TXlBZXJvR3Jvc3NlQmljaGU/Pz8=', 'endpoint_addr': '8.8.8.8', 'endpoint_port': 9999, 'persistent_keepalive': 25, 'allowed_ips': ['::/0']} wg.set(IFNAME, peer=peer) # Delete second peer peer = {'public_key': 'RCdBcHJlc0JpY2hlLFZpdmVMZXNQcm9iaW90aXF1ZXM=', 'remove': True} wg.set(IFNAME, peer=peer) # Get information of the interface wg.info(IFNAME) # Get specific value from the interface wg.info(IFNAME)[0].get('WGDEVICE_A_PRIVATE_KEY') NOTES: * The `get()` method always returns iterable * Using `set()` method only requires an interface name * The `peer` structure is described as follow:: struct peer_s { public_key: # Base64 public key - required remove: # Boolean - optional preshared_key: # Base64 preshared key - optional endpoint_addr: # IPv4 or IPv6 endpoint - optional endpoint_port : # endpoint Port - required only if endpoint_addr persistent_keepalive: # time in seconds to send keep alive - optional allowed_ips: # list of CIDRs allowed - optional } � N)� b64decode� b64encode)�a2b_hex)�AF_INET�AF_INET6� inet_ntop� inet_pton)�ctime)�NLA_F_NESTED� NLM_F_ACK� NLM_F_DUMP� NLM_F_REQUEST�genlmsg�nla)�GenericNetlinkSocketZ wireguard� � � � � � � � � i� c @ s4 e Zd ZdZdZG dd� de�ZG dd� de�ZdS )�wgmsgZWGDEVICE_A_) )�WGDEVICE_A_UNSPEC�none)�WGDEVICE_A_IFINDEX�uint32)�WGDEVICE_A_IFNAMEZasciiz)�WGDEVICE_A_PRIVATE_KEY�parse_wg_key)�WGDEVICE_A_PUBLIC_KEYr! )�WGDEVICE_A_FLAGSr )�WGDEVICE_A_LISTEN_PORT�uint16)�WGDEVICE_A_FWMARKr )�WGDEVICE_A_PEERSz*wgdevice_peerc @ st e Zd ZdZeZdZG dd� de�Ze dd� �Z G dd� de�ZG d d � d e�ZG dd� de�Z G d d� de�ZdS )zwgmsg.wgdevice_peerZ WGPEER_A_))ZWGPEER_A_UNSPECr )�WGPEER_A_PUBLIC_KEY�parse_peer_key)�WGPEER_A_PRESHARED_KEYr) )�WGPEER_A_FLAGSr )�WGPEER_A_ENDPOINT�parse_endpoint)�&WGPEER_A_PERSISTENT_KEEPALIVE_INTERVALr% )ZWGPEER_A_LAST_HANDSHAKE_TIME�parse_handshake_time)ZWGPEER_A_RX_BYTES�uint64)ZWGPEER_A_TX_BYTESr0 )�WGPEER_A_ALLOWEDIPSz*wgpeer_allowedip)ZWGPEER_A_PROTOCOL_VERSIONr c @ s e Zd ZdZdd� Zdd� ZdS )z"wgmsg.wgdevice_peer.parse_peer_key�)�keyZ32sc C s t �| � t| d �| d<