Encode JWT
This commit is contained in:
parent
1784a0a1f8
commit
ee938a3aa6
@ -1,5 +1,10 @@
|
|||||||
# Python client
|
# Python client
|
||||||
|
|
||||||
|
Dependencies:
|
||||||
|
```bash
|
||||||
|
apt install python3-jwt
|
||||||
|
```
|
||||||
|
|
||||||
Reformat code:
|
Reformat code:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
import requests
|
import requests
|
||||||
from src.args import args
|
from src.args import args
|
||||||
import src.constants as constants
|
import src.constants as constants
|
||||||
|
from cryptography.x509 import load_pem_x509_certificate
|
||||||
|
from cryptography import utils
|
||||||
|
import jwt
|
||||||
|
|
||||||
|
|
||||||
def get_secure_origin() -> str:
|
def get_secure_origin() -> str:
|
||||||
@ -70,3 +73,21 @@ def device_certificate() -> str:
|
|||||||
print(res.text)
|
print(res.text)
|
||||||
raise Exception(f"Failed to check enrollment with status {res.status_code}")
|
raise Exception(f"Failed to check enrollment with status {res.status_code}")
|
||||||
return res.text
|
return res.text
|
||||||
|
|
||||||
|
|
||||||
|
def sync_device(dev_id: str, privkey):
|
||||||
|
"""
|
||||||
|
Synchronize device with backend
|
||||||
|
"""
|
||||||
|
encoded = jwt.encode(
|
||||||
|
{"info": device_info()}, privkey, algorithm="RS256", headers={"kid": dev_id}
|
||||||
|
)
|
||||||
|
|
||||||
|
res = requests.post(
|
||||||
|
f"{args.secure_origin}/devices_api/mgmt/sync",
|
||||||
|
json={"payload": encoded},
|
||||||
|
verify=args.root_ca_path,
|
||||||
|
)
|
||||||
|
|
||||||
|
print(encoded)
|
||||||
|
print(res)
|
||||||
|
@ -43,6 +43,10 @@ if not os.path.isfile(args.dev_priv_key_path):
|
|||||||
with open(args.dev_priv_key_path, "w") as f:
|
with open(args.dev_priv_key_path, "w") as f:
|
||||||
f.write(key)
|
f.write(key)
|
||||||
|
|
||||||
|
with open(args.dev_priv_key_path, "r") as f:
|
||||||
|
args.priv_key = f.read()
|
||||||
|
|
||||||
|
|
||||||
print("Check CSR")
|
print("Check CSR")
|
||||||
if not os.path.isfile(args.dev_csr_path):
|
if not os.path.isfile(args.dev_csr_path):
|
||||||
print("Generate CSR...")
|
print("Generate CSR...")
|
||||||
@ -63,8 +67,7 @@ if status != "Validated":
|
|||||||
if status == "Unknown":
|
if status == "Unknown":
|
||||||
print("Device is unknown on the system, need to submit a CSR...")
|
print("Device is unknown on the system, need to submit a CSR...")
|
||||||
with open(args.dev_csr_path, "r") as f:
|
with open(args.dev_csr_path, "r") as f:
|
||||||
csr = "".join(f.read())
|
csr = "".utils
|
||||||
|
|
||||||
print("Enrolling device...")
|
print("Enrolling device...")
|
||||||
api.enroll_device(csr)
|
api.enroll_device(csr)
|
||||||
print("Done. Please accept the device on central system web UI")
|
print("Done. Please accept the device on central system web UI")
|
||||||
@ -85,4 +88,6 @@ if not os.path.isfile(args.dev_crt_path):
|
|||||||
with open(args.dev_crt_path, "w") as f:
|
with open(args.dev_crt_path, "w") as f:
|
||||||
f.write(cert)
|
f.write(cert)
|
||||||
|
|
||||||
|
|
||||||
print("Done. ready to operate.")
|
print("Done. ready to operate.")
|
||||||
|
api.sync_device(args.dev_id, args.priv_key)
|
||||||
|
Loading…
Reference in New Issue
Block a user