semvec/pypi-packages huggingface dataset:
pyknock 0.4.3
UDP port knocking suite with HMAC-PSK authentication
License: MIT
Requires Python: >=2.6

pyknock
=======

UDP port knocking suite with HMAC-PSK authentication. Once it receives valid packet signed with valid pre-shared key, it runs command to open or close access. Commands should be specified by user via server command line. Server allows use of substitution placeholders in configured commands:

* `$ip` - IP address mentioned in signed packet
* `$af` - IP address type: `inet` or `inet6`
* `$cmd` - requested action: `open` or `close`

See Usage for examples.

---

:heart: :heart: :heart:

You can say thanks to the author by donations to these wallets:

- ETH: `0xB71250010e8beC90C5f9ddF408251eBA9dD7320e`
- BTC:
  - Legacy: `1N89PRvG1CSsUk9sxKwBwudN6TjTPQ1N8a`
  - Segwit: `bc1qc0hcyxc000qf0ketv4r44ld7dlgmmu73rtlntw`

---

## Main Idea

In this application UDP datagrams are choosen for a reason. Typical configuration of firewalled machine allows only packets to some public ports and drops packets to all other ports. With UDP external observer can't distinguish between accepted packet and packet dropped by firewall. Therefore, if firewall configuration drops all UDP packets except packets to pyknock port, external observer can't even detect there is something awaiting for magic packet. So, it may be used to hide machine completely from network for unauthenticated peers. Also, it may be used as classical port-knocking solution, adding another protection layer to sensitive network application.

## Features

* Uses cryptographically authenticated messages.
* Resistant to replay attacks.
* Post-quantum ready cryptography (HMAC-PSK with SHA-256).
* Works completely in user-space. May run even as unprivileged user.

## Requirements

Only Python 2.6+ required. Python 3 is also supported.

## Installation

Place file anywhere you want and run. Or use `pip install pyknock` to install it into your system as python package. Scripts shall become available at standard binary paths.

## Usage

Server example:

```bash
pyknock-server MySecretPSK 'ipset add -exist myallowedset $ip timeout 3600' 'ipset del -exist myallowedset $ip'
```

Client example:

```bash
pyknock-client open my-protected-host.com MySecretPSK
```

Client behind NAT example:

```bash
pyknock-client -S $(curl -s https://canihazip.com/s) open my-protected-host.com MySecretPSK
```

See help for more options.
pymusic-term 0.0.4
A music player and spotify client for a terminal
License: MIT
Requires Python: >=3.8
Keywords: git cli cui curses command-line

# pymusicterm [![PyPI version](https://badge.fury.io/py/pymusic-term.svg)](https://badge.fury.io/py/pymusic-term) [![GitHub version](https://badge.fury.io/gh/EGAMAGZ%2Fpymusicterm.svg)](https://badge.fury.io/gh/EGAMAGZ%2Fpymusicterm)
A music player for the terminal written in Python

# Installation

To install `pymusicterm`, it is recommended to use pip:
```
pip install pymusic-term
```

You can install it from source. Clone this repository and use `pip` to install:
```
git clone https://github.com/EGAMAGZ/pymusicterm.git
cd pymusicterm
pip install .
```

If `pymusicterm` is already installed and you would like to update it, use:
```
pip install --upgrade pymusic-term
```

If updating local version, use:
```
cd pymusicterm
git pull
pip install --updgrade .
```

> Note that you may require root acces for installing with `pip` depending on your system's python configuration

<!-- # Demo -->

# Usage
Once `pymusicterm` is intsalled. In a command line client type:
```
pymusicterm
```

In the status bar at the bottom of the window, you will find listed descriptions of how to use the keyboard shortcut to navigate the interface and the menus.

> Windows Terminal is not yet supported

## Notes

pymusicterm was made using [py_cui](https://github.com/jwlodek/py_cui). Check the project out!