raffitz
3 years ago
1 changed files with 47 additions and 0 deletions
@ -0,0 +1,47 @@
@@ -0,0 +1,47 @@
|
||||
#!/usr/bin/env python3 |
||||
"""HKP server |
||||
|
||||
Uses the python http.server module to create an HKP keyserver (pykeyserver) |
||||
|
||||
Functions: |
||||
|
||||
port(number or string or bytes or bytearray) -> 16 bit integer""" |
||||
|
||||
import ipaddress |
||||
import argparse |
||||
|
||||
|
||||
def port(val): |
||||
"""Restrict port values to the TCP range. |
||||
|
||||
Receives a number or a string, bytes, or bytearray instance representing an |
||||
integer literal. |
||||
Raises ValueError if it's not a number or if the number falls outside TCP |
||||
port range.""" |
||||
num = int(val) |
||||
if num < 1: |
||||
raise ValueError |
||||
if num.bit_length() > 16: |
||||
raise ValueError |
||||
return num |
||||
|
||||
|
||||
def main(): |
||||
"""HKP server main function""" |
||||
parser = argparse.ArgumentParser(description='Basic HKP keyserver') |
||||
parser.add_argument('--address', |
||||
type=ipaddress.ip_address, |
||||
help='IP for server interface', |
||||
default=ipaddress.ip_address('127.0.0.1')) |
||||
parser.add_argument('--port', |
||||
type=port, |
||||
help='TCP Port for server interface', |
||||
default=port(11371)) |
||||
|
||||
args = parser.parse_args() |
||||
|
||||
print(f'Server address parsed as {args.address}, port as {args.port}') |
||||
|
||||
|
||||
if __name__ == '__main__': |
||||
main() |
Loading…
Reference in new issue