Keys generators
For your convenience, Jam includes several utilities for generating keys.
Symmetric key generator¶
Util: jam.utils.generate_symmetric_key
Args:
n:int = 32- Key length in bytes.
Returns:
str - Symmetric key.
from jam.utils import generate_symmetric_key
key = generate_symmetric_key()
print(key)
>>> KwMcnHqffc-jEKLrCdk93pNBHrTgyFH-MeWu2Z_udco
AES key generator¶
Util: jam.utils.generate_aes_key
Returns:
bytes: AES key.
from jam.utils import generate_aes_key
key = generate_aes_key()
print(key)
>>> b'NMuwX-O7wgSrOv8NMXkjFrMAwKQsUpWpnkmEnAM0TzE='
ED keypair¶
Utils:
jam.utils.generate_ed25519_keypairjam.utils.generate_ecdsa_p384_keypair
Returns:
dict[str, str] - Dict in format {"private": KEY, "public": KEY}.
from jam.utils import generate_ed25519_keypair
ed25519_keypair = generate_ed25519_keypair()
print(ed25519_keypair)
>>> {'private': '', 'public': ''}
####
from jam.utils import generate_ecdsa_p384_keypair
ecdsa_p384_keypair = generate_ecdsa_p384_keypair()
print(ecdsa_p384_keypair)
>>> {'private': '', 'public': ''}
OTP specific key¶
Utils:
jam.utils.generate_otp_key
Args:
entropy_bits:int = 128- Number of entropy bits to use for key generation.
Returns:
str - OTP key.
jam.utils.otp_key_from_string
Args:
s:str- Some string to generate.
Returns:
str - OTP Key.
from jam.utils import generate_otp_key
key = generate_otp_key()
print(key)
>>> SSDEWUXGHUG3XG53JMVYO555WI
### from string
from jam.utils import otp_key_from_string
key = otp_key_from_string("someusername@example.com")
print(key)
>>> CUK2QXKSV5DSNPI46DPK46TYYRIMX7QK
RSA keypair¶
Util jam.utils.generate_rsa_key_pair
Args:
key_size:int = 2048- Key size in bits.
Returns:
dict[str, str] - Dict in format {"private": KEY, "public": KEY}
from jam.utils import generate_rsa_key_pair
rsa_keypair = generate_rsa_key_pair()
print(rsa_keypair)
>>> {'private': '', 'public': ''}