示例#1
0
def auto_create_private_key_file(args):

    try:
        logger = get_sub_logger('create_private_key_file')

        #- logger.info('args: {}'.format(args))

        pkfp = path.join(configuration_directory_location, 'private_key')

        if path.isfile(pkfp) and not args['over_write'] == True:

            logger.error(
                'ERROR: The private key file already exists. Will not overwrite it.'
            )
            return False if args['silent'] else 'ERROR'

        else:

            if path.isfile(pkfp) and args['over_write'] == True:
                logger.warning(
                    'A private key file exists.  It will be over written.')

            with open(pkfp, 'wb') as f:
                f.write(create_random_key())
                logger.info(
                    'Created a file at {} containing a random key.'.format(
                        pkfp))

        return True if args['silent'] else 'OK'
    except:
        logger.error('Exception in auto_create_private_key: {}, {}'.format(
            exc_info()[0],
            exc_info()[1]))
        return False
示例#2
0
from base64 import standard_b64encode
from datetime import datetime, timezone
from hashlib import sha256
from jose import jws 
from requests import post
from time import time
from uuid import uuid4

from python.logger import get_sub_logger 
from python.encryption.nacl_fop import decrypt

from config import device_id, hmac_secret_key_b64_cipher, fop_jose_id

# Note: This module uses JWT security (via jose).  Paseto is another system for implemeting token based security.

logger = get_sub_logger(__name__)

def extract_timestamp(path_name) -> 'timestamp':

    dt = path_name.split("/")[-1].split(".")[0]

    return datetime(int(dt[0:4]), int(dt[4:6]), int(dt[6:8]), 
                    hour=int(dt[9:11]), minute=int(dt[12:14]), second=int(dt[15:17]), tzinfo=timezone.utc).timestamp()


# Make the JWT claim set
def claim_info(file_hash, time_stamp, camera_id):

    #- TBD: Time delivers seconds since unix epoch. Not all systems have the same epoch start date.  There
    #- may be a better way to time stamp the claims.
    issue_time = int(time())