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
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
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")
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
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]