1ac4aefdc8
neue Datei: client/client.py neue Datei: client/sec/client.crt.pem neue Datei: client/sec/client.csr.pem neue Datei: client/sec/client.key.pem neue Datei: container/Dockerfile neue Datei: container/requirements.txt neue Datei: lib/__pycache__/crypto_utils.cpython-313.pyc neue Datei: lib/__pycache__/jebp_utils.cpython-313.pyc neue Datei: lib/__pycache__/terminal_table.cpython-313.pyc neue Datei: lib/crypto_utils.py neue Datei: lib/jebp_utils.py neue Datei: lib/terminal_table.py neue Datei: server/clients_management/chclient.py neue Datei: server/clients_management/lsclients.py neue Datei: server/clients_management/mkclient.py neue Datei: server/clients_management/rmclient.py neue Datei: server/config/clients/fingerprints neue Datei: server/main.py neue Datei: server/sec/ca/certs/ca.cert.pem neue Datei: server/sec/ca/private/ca.key.pem neue Datei: server/sec/server.crt.pem neue Datei: server/sec/server.csr.pem neue Datei: server/sec/server.key.pem gelöscht: main.py gelöscht: sec/cert.pem gelöscht: sec/key.pem
22 lines
708 B
Python
Executable File
22 lines
708 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/config/clients/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() |