mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
fix nacl.keygen for not yet existing sk_file or pk_file
This commit is contained in:
parent
748943cd59
commit
698979fe55
3 changed files with 19 additions and 4 deletions
1
changelog/66772.fixed.md
Normal file
1
changelog/66772.fixed.md
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Fixed nacl.keygen for not yet existing sk_file or pk_file
|
|
@ -182,12 +182,12 @@ def keygen(sk_file=None, pk_file=None, **kwargs):
|
||||||
with salt.utils.files.fopen(sk_file, "rb") as keyf:
|
with salt.utils.files.fopen(sk_file, "rb") as keyf:
|
||||||
sk = salt.utils.stringutils.to_unicode(keyf.read()).rstrip("\n")
|
sk = salt.utils.stringutils.to_unicode(keyf.read()).rstrip("\n")
|
||||||
sk = base64.b64decode(sk)
|
sk = base64.b64decode(sk)
|
||||||
kp = nacl.public.PublicKey(sk)
|
kp = nacl.public.PrivateKey(sk)
|
||||||
with salt.utils.files.fopen(pk_file, "wb") as keyf:
|
with salt.utils.files.fopen(pk_file, "wb") as keyf:
|
||||||
keyf.write(base64.b64encode(kp.encode()))
|
keyf.write(base64.b64encode(kp.public_key.encode()))
|
||||||
return f"saved pk_file: {pk_file}"
|
return f"saved pk_file: {pk_file}"
|
||||||
|
|
||||||
kp = nacl.public.PublicKey.generate()
|
kp = nacl.public.PrivateKey.generate()
|
||||||
with salt.utils.files.fopen(sk_file, "wb") as keyf:
|
with salt.utils.files.fopen(sk_file, "wb") as keyf:
|
||||||
keyf.write(base64.b64encode(kp.encode()))
|
keyf.write(base64.b64encode(kp.encode()))
|
||||||
if salt.utils.platform.is_windows():
|
if salt.utils.platform.is_windows():
|
||||||
|
@ -200,7 +200,7 @@ def keygen(sk_file=None, pk_file=None, **kwargs):
|
||||||
# chmod 0600 file
|
# chmod 0600 file
|
||||||
os.chmod(sk_file, 1536)
|
os.chmod(sk_file, 1536)
|
||||||
with salt.utils.files.fopen(pk_file, "wb") as keyf:
|
with salt.utils.files.fopen(pk_file, "wb") as keyf:
|
||||||
keyf.write(base64.b64encode(kp.encode()))
|
keyf.write(base64.b64encode(kp.public_key.encode()))
|
||||||
return f"saved sk_file:{sk_file} pk_file: {pk_file}"
|
return f"saved sk_file:{sk_file} pk_file: {pk_file}"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -73,6 +73,20 @@ def test_keygen_keyfile(test_keygen):
|
||||||
|
|
||||||
ret = nacl.keygen(keyfile=fpath)
|
ret = nacl.keygen(keyfile=fpath)
|
||||||
assert f"saved pk_file: {fpath}.pub" == ret
|
assert f"saved pk_file: {fpath}.pub" == ret
|
||||||
|
with salt.utils.files.fopen(str(fpath) + ".pub", "rb") as rfh:
|
||||||
|
assert test_keygen["pk"] == rfh.read()
|
||||||
|
salt.utils.files.remove(str(fpath) + ".pub")
|
||||||
|
|
||||||
|
|
||||||
|
def test_keygen_nonexistent_sk_file():
|
||||||
|
"""
|
||||||
|
test nacl.keygen function
|
||||||
|
with nonexistent/new sk_file
|
||||||
|
"""
|
||||||
|
with pytest.helpers.temp_file("test_keygen_sk_file") as fpath:
|
||||||
|
salt.utils.files.remove(str(fpath))
|
||||||
|
ret = nacl.keygen(sk_file=str(fpath))
|
||||||
|
assert f"saved sk_file:{fpath} pk_file: {fpath}.pub" == ret
|
||||||
salt.utils.files.remove(str(fpath) + ".pub")
|
salt.utils.files.remove(str(fpath) + ".pub")
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue