本文整理汇总了Python中cryptography.fernet.Fernet.generate_key方法的典型用法代码示例。如果您正苦于以下问题:Python Fernet.generate_key方法的具体用法?Python Fernet.generate_key怎么用?Python Fernet.generate_key使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cryptography.fernet.Fernet
的用法示例。
在下文中一共展示了Fernet.generate_key方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_create_new_session_broken_by_format
# 需要导入模块: from cryptography.fernet import Fernet [as 别名]
# 或者: from cryptography.fernet.Fernet import generate_key [as 别名]
def test_create_new_session_broken_by_format(aiohttp_client,
fernet, key):
async def handler(request):
session = await get_session(request)
assert isinstance(session, Session)
assert session.new
assert not session._changed
assert {} == session
return web.Response(body=b'OK')
new_fernet = Fernet(Fernet.generate_key())
client = await aiohttp_client(create_app(handler, key))
make_cookie(client, new_fernet, {'a': 1, 'b': 12})
resp = await client.get('/')
assert resp.status == 200
示例2: test_var_with_encryption_rotate_fernet_key
# 需要导入模块: from cryptography.fernet import Fernet [as 别名]
# 或者: from cryptography.fernet.Fernet import generate_key [as 别名]
def test_var_with_encryption_rotate_fernet_key(self, test_value):
"""
Tests rotating encrypted variables.
"""
key1 = Fernet.generate_key()
key2 = Fernet.generate_key()
with conf_vars({('core', 'fernet_key'): key1.decode()}):
Variable.set('key', test_value)
session = settings.Session()
test_var = session.query(Variable).filter(Variable.key == 'key').one()
self.assertTrue(test_var.is_encrypted)
self.assertEqual(test_var.val, test_value)
self.assertEqual(Fernet(key1).decrypt(test_var._val.encode()), test_value.encode())
# Test decrypt of old value with new key
with conf_vars({('core', 'fernet_key'): ','.join([key2.decode(), key1.decode()])}):
crypto._fernet = None
self.assertEqual(test_var.val, test_value)
# Test decrypt of new value with new key
test_var.rotate_fernet_key()
self.assertTrue(test_var.is_encrypted)
self.assertEqual(test_var.val, test_value)
self.assertEqual(Fernet(key2).decrypt(test_var._val.encode()), test_value.encode())
示例3: test_connection_extra_with_encryption_rotate_fernet_key
# 需要导入模块: from cryptography.fernet import Fernet [as 别名]
# 或者: from cryptography.fernet.Fernet import generate_key [as 别名]
def test_connection_extra_with_encryption_rotate_fernet_key(self):
"""
Tests rotating encrypted extras.
"""
key1 = Fernet.generate_key()
key2 = Fernet.generate_key()
with conf_vars({('core', 'fernet_key'): key1.decode()}):
test_connection = Connection(extra='testextra')
self.assertTrue(test_connection.is_extra_encrypted)
self.assertEqual(test_connection.extra, 'testextra')
self.assertEqual(Fernet(key1).decrypt(test_connection._extra.encode()), b'testextra')
# Test decrypt of old value with new key
with conf_vars({('core', 'fernet_key'): ','.join([key2.decode(), key1.decode()])}):
crypto._fernet = None
self.assertEqual(test_connection.extra, 'testextra')
# Test decrypt of new value with new key
test_connection.rotate_fernet_key()
self.assertTrue(test_connection.is_extra_encrypted)
self.assertEqual(test_connection.extra, 'testextra')
self.assertEqual(Fernet(key2).decrypt(test_connection._extra.encode()), b'testextra')
示例4: export
# 需要导入模块: from cryptography.fernet import Fernet [as 别名]
# 或者: from cryptography.fernet.Fernet import generate_key [as 别名]
def export(self, body, chain, key, options, **kwargs):
"""
Generates a Java Truststore
"""
if self.get_option("alias", options):
alias = self.get_option("alias", options)
else:
alias = common_name(parse_certificate(body))
if self.get_option("passphrase", options):
passphrase = self.get_option("passphrase", options)
else:
passphrase = Fernet.generate_key().decode("utf-8")
raw = create_truststore(body, chain, alias, passphrase)
return "jks", passphrase, raw
示例5: encrypt_to_file
# 需要导入模块: from cryptography.fernet import Fernet [as 别名]
# 或者: from cryptography.fernet.Fernet import generate_key [as 别名]
def encrypt_to_file(contents, filename):
"""
Encrypts ``contents`` and writes it to ``filename``.
``contents`` should be a bytes string. ``filename`` should end with
``.enc``.
Returns the secret key used for the encryption.
Decrypt the file with :func:`doctr.travis.decrypt_file`.
"""
if not filename.endswith('.enc'):
raise ValueError("%s does not end with .enc" % filename)
key = Fernet.generate_key()
fer = Fernet(key)
encrypted_file = fer.encrypt(contents)
with open(filename, 'wb') as f:
f.write(encrypted_file)
return key
示例6: test_normalize_encrypt_key
# 需要导入模块: from cryptography.fernet import Fernet [as 别名]
# 或者: from cryptography.fernet.Fernet import generate_key [as 别名]
def test_normalize_encrypt_key():
key = Fernet.generate_key()
# b64 bytes
assert db_base._normalize_encrypt_key(key) == key
# b64 string
assert db_base._normalize_encrypt_key(key.decode()) == key
# raw bytes
raw = base64.urlsafe_b64decode(key)
assert db_base._normalize_encrypt_key(raw) == key
# Too short
with pytest.raises(ValueError) as exc:
db_base._normalize_encrypt_key(b"abcde")
assert "DASK_GATEWAY_ENCRYPT_KEYS" in str(exc.value)
# Too short decoded
with pytest.raises(ValueError) as exc:
db_base._normalize_encrypt_key(b"\x00" * 43 + b"=")
assert "DASK_GATEWAY_ENCRYPT_KEYS" in str(exc.value)
# Invalid b64 encode
with pytest.raises(ValueError) as exc:
db_base._normalize_encrypt_key(b"=" + b"a" * 43)
assert "DASK_GATEWAY_ENCRYPT_KEYS" in str(exc.value)
示例7: create_datakey
# 需要导入模块: from cryptography.fernet import Fernet [as 别名]
# 或者: from cryptography.fernet.Fernet import generate_key [as 别名]
def create_datakey(encryption_context, keyid, client=None):
'''
Create a datakey from KMS.
'''
# Fernet key; from spec and cryptography implementation, but using
# random from KMS, rather than os.urandom:
# https://github.com/fernet/spec/blob/master/Spec.md#key-format
# https://cryptography.io/en/latest/_modules/cryptography/fernet/#Fernet.generate_key
key = base64.urlsafe_b64encode(
client.generate_random(NumberOfBytes=32)['Plaintext']
)
response = client.encrypt(
KeyId='{0}'.format(keyid),
Plaintext=key,
EncryptionContext=encryption_context
)
return {'ciphertext': response['CiphertextBlob'],
'plaintext': key}
示例8: save_key
# 需要导入模块: from cryptography.fernet import Fernet [as 别名]
# 或者: from cryptography.fernet.Fernet import generate_key [as 别名]
def save_key():
"""
Generates and saves a key for password encryption and
decryption.
Uses cryptography.fernet.
"""
# Generate key
key = Fernet.generate_key()
# Save key to file
try:
f = open(config_dir+key_file, 'wb')
except IOError as e:
if e.strerror == 'No such file or directory':
print("Could not open key file for write")
sys.exit()
else:
raise e
f.write(key)
f.close()
示例9: load_key
# 需要导入模块: from cryptography.fernet import Fernet [as 别名]
# 或者: from cryptography.fernet.Fernet import generate_key [as 别名]
def load_key(self):
"""Loads the key from a hidden location"""
token = ""
if os.path.exists(self.keyname):
with open(self.keyname, "r") as file:
lines = file.readlines()
for line in lines:
token = line.replace("\n", "")
break
else:
token = Fernet.generate_key()
with open(self.keyname, "w+") as file:
file.write(token.decode("utf-8"))
if isinstance(token, bytes):
return bytes(token)
return bytes(token.encode())
示例10: cmd_crypto_fernet_genkey
# 需要导入模块: from cryptography.fernet import Fernet [as 别名]
# 或者: from cryptography.fernet.Fernet import generate_key [as 别名]
def cmd_crypto_fernet_genkey(writecfg):
"""Generate a new Fernet Key, optionally write it to ~/.habu.json
Example:
\b
$ habu.crypto.fernet.genkey
xgvWCIvjwe9Uq7NBvwO796iI4dsGD623QOT9GWqnuhg=
"""
key = Fernet.generate_key()
print(key.decode())
if writecfg:
habucfg = loadcfg(environment=False)
habucfg['FERNET_KEY'] = key.decode()
with Path('~/.habu.json').expanduser().open('w') as f:
f.write(json.dumps(habucfg, indent=4, sort_keys=True))
示例11: generate_key
# 需要导入模块: from cryptography.fernet import Fernet [as 别名]
# 或者: from cryptography.fernet.Fernet import generate_key [as 别名]
def generate_key(self):
"""
Generates a 128-bit AES key for encrypting files. Sets self.cyptor with a Fernet object
"""
self.key = Fernet.generate_key()
self.cryptor = Fernet(self.key)
示例12: test_armm_encrypt
# 需要导入模块: from cryptography.fernet import Fernet [as 别名]
# 或者: from cryptography.fernet.Fernet import generate_key [as 别名]
def test_armm_encrypt(mock_remember_me_manager, monkeypatch):
"""
unit tested: encrypt
test case:
passes call to fernet.encrypt
"""
mrmm = mock_remember_me_manager
key = Fernet.generate_key()
monkeypatch.setattr(mrmm, 'encryption_cipher_key', key)
with mock.patch.object(Fernet, 'encrypt') as fernet_encrypt:
fernet_encrypt.return_value = 'encrypted'
result = mrmm.encrypt('serialized')
fernet_encrypt.assert_called_once_with('serialized')
assert result == 'encrypted'
示例13: test_armm_decrypt
# 需要导入模块: from cryptography.fernet import Fernet [as 别名]
# 或者: from cryptography.fernet.Fernet import generate_key [as 别名]
def test_armm_decrypt(mock_remember_me_manager, monkeypatch):
"""
unit tested: decrypt
test case:
passes call to fernet.decrypt
"""
mrmm = mock_remember_me_manager
key = Fernet.generate_key()
monkeypatch.setattr(mrmm, 'decryption_cipher_key', key)
with mock.patch.object(Fernet, 'decrypt') as fernet_decrypt:
fernet_decrypt.return_value = 'decrypted'
result = mrmm.decrypt('serialized')
fernet_decrypt.assert_called_once_with('serialized')
assert result == 'decrypted'
示例14: fernet_and_key
# 需要导入模块: from cryptography.fernet import Fernet [as 别名]
# 或者: from cryptography.fernet.Fernet import generate_key [as 别名]
def fernet_and_key():
key = Fernet.generate_key()
fernet = Fernet(key)
return fernet, base64.urlsafe_b64decode(key)
示例15: generate_key
# 需要导入模块: from cryptography.fernet import Fernet [as 别名]
# 或者: from cryptography.fernet.Fernet import generate_key [as 别名]
def generate_key():
return Fernet.generate_key().decode("utf-8")