예제 #1
0
def sha256sum(hash,filename, block_size=65536):
    from hashlib import sha256 #hashlib to make our lives easier, no reason to import the whole thing
    sha256 = sha256()
    with open(filename, 'rb') as f:
        for block in iter(lambda: f.read(block_size), b''):
            sha256.update(block)
    if hash == sha256.hexdigest(): return True
    else: return False
예제 #2
0
def test_file():
    try:
        convert()
        with open("sample.webp", "rb") as f:
             for chunk in iter(lambda: f.read(4096), b""):
                 sha256.update(chunk)
             assert sha256.hexdigest() == hash

    except:
        pass
    def pack_header(self):
        header = self.version_binary_str
        sha256 = hashlib.sha256()
        sha256.update(self.version_binary_str)
        checksum = sha256.digest()[:4]

        header = header + checksum
        header = header + b'\x00' * (32 - len(header))

        packhash =  bytearray.fromhex(self.packed_hash)
        header = header + packhash
        
        # signature part
        header = header + b'\x00' * 64
        return header
예제 #4
0
def verify_page(request, uniqeId):
    if request.method == 'GET':
        if not uniqeId:
            return HttpResponse("Page not found")
        id1 = VDG_M_documentDetails.objects.filter(VGuid=uniqeId).first()
        if not id1:
            return HttpResponse("Page not found")

        file_url1 = id1.Fileurl
        hash1 = ""
        try:
            sha256 = hashlib.sha256()
            txt = urllib2.urlopen(file_url1).read()
            sha256.update(txt)
            hash1 = sha256.hexdigest()

        except urllib.error.URLError as e:
            return render(request, 'verify/verify.html', {
                'status': False,
                'failedStage': 1
            })
        print(hash1)
        if id1.Hash != hash1:
            return render(request, 'verify/verify.html', {
                'status': False,
                'failedStage': 2
            })

        customer_ID = id1.CustomeID
        unique_id = id1.VGuid
        created_on1 = ""

    return render(
        request, 'verify/verify.html', {
            'customer_ID': customer_ID,
            'unique_id': unique_id,
            'hash1': hash1,
            'created_on1': created_on1,
            'file_url1': file_url1
        })
 def calculate_checksum(self, content, length = 8):
     sha256 = hashlib.sha256()
     sha256.update(content)
     checksum = sha256.digest()[:length]
     return checksum
예제 #6
0
    def post(self, request,*argv, **kwargs):
        if request.method == 'POST':
            key1 = self.request.META.get('HTTP_APIKEY',None)
            payload1 = self.request.META.get('HTTP_PAYLOAD',None)
            uniqueId = self.request.data['uniqueId']
            fileurl = self.request.data['fileurl']
            metadata =  self.request.data['metadata']
            delimeter = self.request.data['delimeter']
            if not uniqueId:
                response_data  = {}
                response_data['returncode'] = '2'
                response_data['message'] = 'UniqueId not found'
                return HttpResponse(json.dumps(response_data), content_type="application/json")
            if not key1:
                response_data  = {}
                response_data['returncode'] = '2'
                response_data['message'] = 'Apikey not found'
                return HttpResponse(json.dumps(response_data), content_type="application/json")
            if not payload1:
                response_data  = {}
                response_data['returncode'] = '2'
                response_data['message'] = 'Payload not found'
                return HttpResponse(json.dumps(response_data), content_type="application/json")
            payload1 = payload1.lower()                      
            #que = ApiKeyToken.objects.filter(key = key1).values_list('secret_key', flat=True)            
            que = ApiKeyToken.objects.filter(key = key1).first()
            if not que:
                response_data  = {}
                response_data['returncode'] = '2'
                response_data['message'] = 'Sorry you are not authorized user!!'
                context = {'response_data':response_data}
                return HttpResponse(json.dumps(response_data), content_type="application/json")  
            sec_key = que.secret_key
            secret = key1+uniqueId+fileurl+metadata+delimeter+sec_key            
            hash_object = hashlib.sha256(str(secret).encode('utf-8'))
            payload = hash_object.hexdigest()
            if payload != payload1:
                response_data  = {}
                response_data['returncode'] = '2'
                response_data['message'] = 'Sorry you are not authorized user...!!'
                context = {'response_data':response_data}
                return HttpResponse(json.dumps(response_data), content_type="application/json")

            id_get = VDG_M_documentDetails.objects.filter(VGuid = uniqueId).first() 
            if not id_get:
                response_data  = {}
                response_data['returncode'] = '2'
                response_data['message'] = 'UniqueId not found'
                context = {'response_data':response_data}
                return HttpResponse(json.dumps(response_data), content_type="application/json")  

            if id_get.CustomeID !=que.user.id :
                response_data  = {}
                response_data['returncode'] = '2'
                response_data['message'] = 'Sorry you are not authorized user...!!'
                context = {'response_data':response_data}
                return HttpResponse(json.dumps(response_data), content_type="application/json") 

            try:
                sha256 = hashlib.sha256()
                txt = urllib2.urlopen(fileurl).read()
                sha256.update(txt) 
                h2 = sha256.hexdigest()
            except urllib.error.URLError as e:
                response_data  = {}
                response_data['returncode'] = '2'
                response_data['message'] = 'No such file Found.'
                return HttpResponse(json.dumps(response_data), content_type="application/json")            
            
            id_get.Fileurl = fileurl
            id_get.Metadata = metadata
            id_get.Hash = h2
            id_get.delimeter = delimeter
            id_get.Modified_on = datetime.datetime.now()
            id_get.Modified_by = que.user.id                 
            id_get.save()

            response_data  = {}
            response_data['returncode'] = '1'
            response_data['message'] = 'Value updated successfully.'
            response_data['uniqueId'] = uniqueId
            response_data['FileHash'] = h2
            return HttpResponse(json.dumps(response_data), content_type="application/json")