def set_chksum(self, doc, chk_sum): """ Sets the external document reference's check sum, if not already set. chk_sum - The checksum value in the form of a string. """ if chk_sum: doc.ext_document_references[-1].check_sum = checksum.Algorithm( 'SHA1', chk_sum) else: raise SPDXValueError('ExternalDocumentRef::Checksum')
def checksum_from_sha1(value): """Returns an spdx.checksum.Algorithm instance representing the SHA1 checksum. Returns None if doesn't match CHECKSUM_RE. """ # More constrained regex at lexer level CHECKSUM_RE = re.compile('SHA1:(.+)', re.UNICODE) match = CHECKSUM_RE.match(value) if match: return checksum.Algorithm(identifier='SHA1', value=match.group(1)) else: return None
def set_pkg_chk_sum(self, doc, chk_sum): """Sets the package check sum, if not already set. chk_sum - A string Raises CardinalityError if already defined. Raises OrderError if no package previously defined. """ self.assert_package_exists() if not self.package_chk_sum_set: self.package_chk_sum_set = True doc.package.check_sum = checksum.Algorithm('SHA1', chk_sum) else: raise CardinalityError('Package::CheckSum')
def set_file_chksum(self, doc, chk_sum): """Sets the file check sum, if not already set. chk_sum - A string Raises CardinalityError if already defined. Raises OrderError if no package previously defined. """ if self.has_package(doc) and self.has_file(doc): if not self.file_chksum_set: self.file_chksum_set = True self.file(doc).chk_sum = checksum.Algorithm('SHA1', chk_sum) return True else: raise CardinalityError('File::CheckSum') else: raise OrderError('File::CheckSum')