b1ac351ad1
geändert: client/client.py gelöscht: lib/__pycache__/crypto_utils.cpython-313.pyc gelöscht: lib/__pycache__/jebp_utils.cpython-313.pyc gelöscht: lib/__pycache__/terminal_table.cpython-313.pyc geändert: lib/jebp_utils.py gelöscht: server/clients_management/chclient.py gelöscht: server/clients_management/rmclient.py neue Datei: server/data/conf/client_admin_rights umbenannt: server/config/clients/fingerprints -> server/data/conf/client_fingerprints neue Datei: server/data/conf/topics geändert: server/server.py neue Datei: server/utils/clients_management/chclient.py neue Datei: server/utils/clients_management/lsclients.py umbenannt: server/clients_management/mkclient.py -> server/utils/clients_management/mkclient.py neue Datei: server/utils/clients_management/rmclient.py umbenannt: server/clients_management/lsclients.py -> server/utils/topics_management/lstopics.py
22 lines
710 B
Python
Executable File
22 lines
710 B
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import dbm
|
|
import sys
|
|
from cryptography import x509
|
|
from cryptography.hazmat.backends import default_backend
|
|
from cryptography.hazmat.primitives import serialization
|
|
import hashlib
|
|
|
|
if len(sys.argv) < 2:
|
|
print(f'{sys.argv[0]}: missing common name')
|
|
sys.exit(1)
|
|
|
|
try:
|
|
cert = x509.load_pem_x509_certificate(sys.stdin.buffer.read(), default_backend())
|
|
except:
|
|
print(f'{sys.argv[0]}: invalid certificate')
|
|
sys.exit(1)
|
|
|
|
with dbm.open('server/data/conf/client_fingerprints', 'c') as db:
|
|
db[hashlib.sha256(cert.public_key().public_bytes(encoding=serialization.Encoding.DER, format=serialization.PublicFormat.SubjectPublicKeyInfo)).digest()] = sys.argv[1]
|
|
db.close() |