Пример #1
0
def hash_256_digest(value):
    '''
	Hash256 digest for calculating a string value
	:param value:String <type:string>
	:return: hash256 digest
	'''
    digest = SHA256Hash(value.encode('utf-8')).digest()
    return digest
Пример #2
0
def JWK_Thumbprint(key_dict):
    '''
	Computing the input parameter object has-256 digest
	:param key_dict: Arbitrarily object
	:return: has-256 digest
	'''
    key_json = json.dumps(key_dict, separators=(',', ':')).encode("utf8")
    hash_265 = SHA256Hash(key_json).digest()
    return hash_265
Пример #3
0
    def worker(self):
        Log.log.write(Log.DEBUG, "Starting worker")

        seed = SHA256Hash(str(threading.current_thread().ident)).hexdigest()
        random.seed(seed)

        self.tls.ldap = LDAP.LDAP(SMB.smb.domain)

        kind = ''

        self.cv.acquire()

        while kind != 'quit':
            while self.queue.empty():
                self.cv.wait()
            task = self.queue.get()
            self.cv.release()

            kind = task.kind
            if kind == 'call':
                func = task.args[0]
                self.tls.task = task
                self.safe_run(task.args[0], task.args[1:], task.kwargs)

            self.completed(task)

            self.cv.acquire()

            self.queue.task_done()

        self.cv.release()

        self.tls.ldap.close()
        self.tls.ldap = None
        self.tls.task = None

        self.submit(Task(None, 'quit', 'immediate'))

        Log.log.write(Log.DEBUG, "Worker terminated")
Пример #4
0
 def encrypt(self, data):
     # získání key a salt
     key_part = SECRET_ENCRYPTION_KEY[8:]
     binary_key = binascii.unhexlify(key_part)
     key, salt = binary_key[:16], binary_key[16:]
     # Inicializační vektor
     iv = Random.new().read(AES.block_size)
     # získání šifry.
     cipher = AES.new(key, AES.MODE_CBC, iv)
     # konverze do UTF-8
     serialized_data = json.dumps(data).encode('utf-8')
     # komprese dat
     serialized_data = zlib.compress(serialized_data, 9)
     # připojení velikosti dat v bajtech (big-endian)
     serialized_data = struct.pack('!L',
                                   len(serialized_data)) + serialized_data
     # kontrolní součet
     digest = HMAC(salt, serialized_data + iv, SHA256Hash()).digest()
     # padding
     serialized_data += bytes(16 - len(serialized_data) % 16)
     # šifrování
     encrypted_data = cipher.encrypt(serialized_data)
     str = base64.b64encode(iv + digest + encrypted_data)
     return str
Пример #5
0
            case["digestmod"] = hashlib.sha256
        else:
            raise Exception("Digest mode not considered.")

        from kdf.lhmac import NIST
        self._test_NIST_UseCase(NIST(), case,
                                "hmac library based implementation")

    def _test_using_crypto_library(self, generic_case):
        case = generic_case.copy()
        if case["digestmod"] == "sha1":
            from Crypto.Hash.SHA import SHA1Hash
            case["digestmod"] = SHA1Hash()
        elif case["digestmod"] == "sha256":
            from Crypto.Hash.SHA256 import SHA256Hash
            case["digestmod"] = SHA256Hash()
        else:
            raise Exception("Digest mode not considered.")

        case["ki"] = str(case["ki"])
        #print binascii.hexlify(a["ki"])
        case["fixedInput"] = str(case["fixedInput"])
        case["ko"] = str(case["ko"])

        from kdf.lcrypto import NIST
        self._test_NIST_UseCase(NIST(), case,
                                "crypto library based implementation")

    def test_NIST1(self):
        """
        [PRF=HMAC_SHA1]