def encrypt_key(key, nonce, data): key = clean_string(key) key = SHA256d(key).digest() print(key) nonce_hash = SHA256d(nonce).digest()# assert 32 bytes key enc_key = aes(key, nonce_hash) # generate encryption key return aes(enc_key, data) # encrypt data using the new key
def set_convergence_secret(self, secret): secret = clean_string(secret) if self.__convergence_secret and self.__convergence_secret != secret: msg = "Do not change the convergence secret during encryption!" raise CryptError(msg) self.__convergence_secret = secret
def set_convergence_secret(self, secret): """ sets the secret used to defeat confirmation-of-a-file attack """ secret = clean_string(secret) if self.__convergence_secret and self.__convergence_secret != secret: msg = "Do not change the convergence secret during encryption!" raise CryptError(msg) self.__convergence_secret = secret
def encrypt_key(key, nonce, data): """ use "key" and "nonce" to generate a one time key and en-/decrypt "data" with the one time key. Args key: encryption key nounce: exactly once used string (try a time-based UUID) data: the encrypted data Returns ciphertext: AES256 encrypted data """ key = clean_string(key) key = SHA256d(key).digest() nonce_hash = SHA256d(nonce).digest()# assert 32 bytes key enc_key = aes(key, nonce_hash) # generate encryption key return aes(enc_key, data) # encrypt data using the new key
def SSK_normalized(s, t, n, lam): s = tools.clean_string(s) t = tools.clean_string(t) return SSK(s, t, n, lam) / np.sqrt(SSK(s, s, n, lam) * SSK(t, t, n, lam))