new: reporting session data to the api

This commit is contained in:
Simone Margaritelli 2019-10-07 10:25:46 +02:00
parent 6e9bb866c7
commit 00582be374

View File

@ -7,6 +7,7 @@ __description__ = 'This plugin signals the unit cryptographic identity to api.pw
import logging import logging
import json import json
import requests import requests
import subprocess
import pwnagotchi import pwnagotchi
from pwnagotchi.utils import StatusFile from pwnagotchi.utils import StatusFile
@ -27,6 +28,7 @@ def on_internet_available(ui, keypair, config, log):
try: try:
logging.info("api: signign enrollment request ...") logging.info("api: signign enrollment request ...")
identity = "%s@%s" % (pwnagotchi.name(), keypair.fingerprint) identity = "%s@%s" % (pwnagotchi.name(), keypair.fingerprint)
_, signature_b64 = keypair.sign(identity) _, signature_b64 = keypair.sign(identity)
@ -34,7 +36,16 @@ def on_internet_available(ui, keypair, config, log):
enroll = { enroll = {
'identity': identity, 'identity': identity,
'public_key': keypair.pub_key_pem_b64, 'public_key': keypair.pub_key_pem_b64,
'signature': signature_b64 'signature': signature_b64,
'data': {
'duration': log.duration,
'epochs': log.epochs,
'train_epochs': log.train_epochs,
'avg_reward': log.avg_reward,
'min_reward': log.min_reward,
'max_reward': log.max_reward,
'uname': subprocess.getoutput("uname -a")
}
} }
logging.info("api: enrolling unit to %s ..." % api_address) logging.info("api: enrolling unit to %s ..." % api_address)