コード例 #1
0
 def create_signature_file(inner_zip_file):
     signature_file = os.path.splitext(inner_zip_file)[0] + "_signature.txt"
     logging.debug("Generating signature; saving to %s" % signature_file)
     if settings.DEBUG or not os.path.exists(signature_file):  # always regenerate in debug mode
         key = Device.get_own_device().get_key()
         chunk_size = int(2E5)  #200kb chunks
         signature = key.sign_large_file(inner_zip_file, chunk_size=chunk_size)
         with open(signature_file, "w") as fp:
             fp.write("%d\n" % chunk_size)
             fp.write(signature)
     return signature_file
コード例 #2
0
 def create_signature_file(inner_zip_file):
     signature_file = os.path.splitext(
         inner_zip_file)[0] + "_signature.txt"
     logging.debug("Generating signature; saving to %s" %
                   signature_file)
     if settings.DEBUG or not os.path.exists(
             signature_file):  # always regenerate in debug mode
         key = Device.get_own_device().get_key()
         chunk_size = int(2E5)  #200kb chunks
         signature = key.sign_large_file(inner_zip_file,
                                         chunk_size=chunk_size)
         with open(signature_file, "w") as fp:
             fp.write("%d\n" % chunk_size)
             fp.write(signature)
     return signature_file
コード例 #3
0
        def create_json_file(include_data):
            central_server = Device.get_central_server()
            if not zone_id:
                models = [central_server] if central_server else []

            else:
                # Get a chain of trust to the zone owner.
                #   Because we're on the central server, this will
                #   simply be the central server, but in the future
                #   this would return an actual chain.
                logging.debug("Generating a zone invitation...")
                zone = Zone.objects.get(id=zone_id)
                chain = ChainOfTrust(zone=zone)
                assert chain.validate()
                new_invitation = ZoneInvitation.generate(
                    zone=zone, invited_by=Device.get_own_device())
                new_invitation.save(
                )  # keep a record of the invitation, for future revocation.  Also, signs the thing

                # This ordering of objects is a bit be hokey, but OK--invitation usually must be
                #   inserted before devicezones--but because it's not pointing to any devices,
                #   it's OK to be at the end.
                # Note that the central server will always be at the front of the chain of trust,
                #   so no need to explicitly include.
                models = chain.objects() + [new_invitation]

                #
                if include_data:
                    logging.debug("Serializing entire dataset...")
                    devices = Device.objects.by_zone(zone)
                    devicezones = DeviceZone.objects.filter(zone=zone)
                    models += list(devices) + list(devicezones)
                    models += engine.get_models(
                        zone=zone, limit=None)  # get all models on this zone

            models_file = tempfile.mkstemp()[1]
            with open(models_file, "w") as fp:
                fp.write(engine.serialize(models))
            return models_file
コード例 #4
0
        def create_json_file(include_data):
            central_server = Device.get_central_server()
            if not zone_id:
                models = [central_server] if central_server else []

            else:
                # Get a chain of trust to the zone owner.
                #   Because we're on the central server, this will
                #   simply be the central server, but in the future
                #   this would return an actual chain.
                logging.debug("Generating a zone invitation...")
                zone = Zone.objects.get(id=zone_id)
                chain = ChainOfTrust(zone=zone)
                assert chain.validate()
                new_invitation = ZoneInvitation.generate(zone=zone, invited_by=Device.get_own_device())
                new_invitation.save()  # keep a record of the invitation, for future revocation.  Also, signs the thing

                # This ordering of objects is a bit be hokey, but OK--invitation usually must be
                #   inserted before devicezones--but because it's not pointing to any devices,
                #   it's OK to be at the end.
                # Note that the central server will always be at the front of the chain of trust,
                #   so no need to explicitly include.
                models = chain.objects() + [new_invitation]

                #
                if include_data:
                    logging.debug("Serializing entire dataset...")
                    devices = Device.objects.by_zone(zone)
                    devicezones = DeviceZone.objects.filter(zone=zone)
                    models += list(devices) + list(devicezones)
                    models += engine.get_models(zone=zone, limit=None)  # get all models on this zone

            models_file = tempfile.mkstemp()[1]
            with open(models_file, "w") as fp:
                fp.write(engine.serialize(models))
            return models_file