コード例 #1
0
    def __init__(self, major_version):
        self._header = FakeHeader(major_version, 222, 0)
        self.header = None
        self._manifest = FakeManifest(major_version)
        self.manifest = None

        self._blobs = {}
        self._payload_signatures = update_metadata_pb2.Signatures()
        self._metadata_signatures = update_metadata_pb2.Signatures()
コード例 #2
0
    def Init(self):
        """Initializes the payload object.

    This is a prerequisite for any other public API call.

    Raises:
      PayloadError if object already initialized or fails to initialize
      correctly.
    """
        if self.is_init:
            raise PayloadError('payload object already initialized')

        self.manifest_hasher = hashlib.sha256()

        # Read the file header.
        self.payload_file.seek(self.payload_file_offset)
        self.header = self._ReadHeader()

        # Read the manifest.
        manifest_raw = self._ReadManifest()
        self.manifest = update_metadata_pb2.DeltaArchiveManifest()
        self.manifest.ParseFromString(manifest_raw)

        # Read the metadata signature (if any).
        metadata_signature_raw = self._ReadMetadataSignature()
        if metadata_signature_raw:
            self.metadata_signature = update_metadata_pb2.Signatures()
            self.metadata_signature.ParseFromString(metadata_signature_raw)

        self.metadata_size = self.header.size + self.header.manifest_len
        self.data_offset = self.metadata_size + self.header.metadata_signature_len

        self.is_init = True
コード例 #3
0
ファイル: cros_payload.py プロジェクト: msisov/chromium68
 def _DisplaySignaturesBlob(signature_name, signatures_blob):
     from update_payload import update_metadata_pb2
     signatures = update_metadata_pb2.Signatures()
     signatures.ParseFromString(signatures_blob)
     print('%s signatures: (%d entries)' %
           (signature_name, len(signatures.signatures)))
     for signature in signatures.signatures:
         print(
             '  version=%s, hex_data: (%d bytes)' %
             (signature.version if signature.HasField('version') else None,
              len(signature.data)))
         DisplayHexData(signature.data, indent=4)
コード例 #4
0
 def __init__(self):
   self.sigs = update_metadata_pb2.Signatures()