Lines Matching refs:self
67 def __init__(self, hash_type, count):
68 self.hashinfo_tlv_type = 0x06
69 self.hashdata_tlv_type = 0x07
70 self.sign_tlv_type = 0x08
71 self.hash_type = hash_type
72 self.hash_digest_size = HashAlgo[hash_type]().digest_size
73 self.component_num = count
74 self.block_size = HASH_BLOCK_SIZE
75 self.hashinfo_value = bytes()
76 self.hashdata = bytes()
77 self.signdata = bytes()
78 self.hashdata_list = []
80 def write_hashinfo(self):
82 hashinfo_tlv = struct.pack(HASH_TLV_FMT, self.hashinfo_tlv_type, UPGRADE_HASHINFO_SIZE)
83 hashinfo_header = struct.pack(HASH_INFO_FMT, self.hash_type.value, self.hash_digest_size,
84 self.component_num, self.block_size)
90 self.hashinfo_value = hashinfo_tlv + hashinfo_header
93 def write_hashdata(self):
95 hashdata_len = len(self.hashdata)
96 hashdata_tlv = struct.pack(HASH_TLV_FMT, self.hashdata_tlv_type, hashdata_len)
103 self.hashdata = hashdata_tlv + self.hashdata
107 def write_signdata(self, signdata):
110 signdata_tlv = struct.pack(HASH_TLV_FMT, self.sign_tlv_type, signdata_len)
116 self.signdata = signdata_tlv + signdata
120 def calculate_hash_data(self, data):
121 hash_algo = HashAlgo[self.hash_type]()
125 def write_component_hash_data(self, component):
135 self.hashdata += struct.pack(HASH_DATA_HEADER_FMT, component_name.encode(),
143 self.hashdata += struct.pack(HASH_DATA_ADDR_FMT, (i * HASH_BLOCK_SIZE if i != 0 else 0),
144 write_len - 1) + self.calculate_hash_data(component_data)
148 self.hashdata += struct.pack(HASH_DATA_ADDR_FMT, (write_len if write_len != 0 else 0),
149 component_len - 1) + self.calculate_hash_data(component_data)
155 def parse_hashinfo(self, data):
159 hash_type_value, self.hash_digest_size, self.component_num, self.block_size = \
161 self.hash_type = HashType(hash_type_value)
166 self.hash_digest_size, self.component_num, self.block_size))
169 def parse_hashdata(self, data):
172 for i in range(0, self.component_num):
178 self.hashdata_list.append((img_name.decode(), hash_num, img_size))
182 hash_data = data[HASH_DATA_ADDR_SIZE + offset:HASH_DATA_ADDR_SIZE + self.hash_digest_size + offset]
183 offset += (HASH_DATA_ADDR_SIZE + self.hash_digest_size)
184 self.hashdata_list.append((hash_data_star, hash_data_end, hash_data))
191 def parse_signdata(self, data):
193 self.signdata = data
197 def parse_print_hashdata(self, save_path):
202 HashType(self.hash_type.value).name, str(self.hash_digest_size),
203 str(self.component_num), str(self.block_size))).encode())
206 for i in range(0, self.component_num):
207 hash_check_file_p.write(("%s\n" % (self.hashdata_list[offset][0])).encode())
209 str(self.hashdata_list[offset][1]), str(self.hashdata_list[offset][2]))).encode())
210 for j in range(0, self.hashdata_list[offset][1]):
212 hashdata_hexstr = "".join("%02x" % b for b in self.hashdata_list[j + index][2])
214 str(self.hashdata_list[j + index][0]), str(self.hashdata_list[j + index][1]),
217 offset += (1 + self.hashdata_list[offset][1])
219 signdata_hexstr = "".join("%02x" % b for b in self.signdata)