Skip to content

Commit ea7b3f3

Browse files
authored
fix(grz-common): drop pynacl, use cryptography for X25519 keygen (#572)
- **fix(grz-common): drop pynacl, use cryptography for X25519 keygen** - **update uv.lock**
1 parent 790b5d9 commit ea7b3f3

3 files changed

Lines changed: 606 additions & 584 deletions

File tree

packages/grz-common/pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ dependencies = [
1616
"boto3 >=1.36,<2",
1717
"click >=8.2,<9",
1818
"crypt4gh >=1.8.6,<2",
19-
"pynacl >=1.6.2,<2",
2019
"jsonschema >=4.23.0,<5",
2120
"pyyaml >=6.0.2,<7",
2221
"tqdm >=4.66.5,<5",

packages/grz-common/src/grz_common/utils/crypt.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
import crypt4gh.header
1414
import crypt4gh.keys
1515
import crypt4gh.lib
16-
from nacl.public import PrivateKey
16+
from cryptography.hazmat.primitives import serialization
17+
from cryptography.hazmat.primitives.asymmetric.x25519 import X25519PrivateKey
1718
from tqdm.auto import tqdm
1819

1920
from ..constants import TQDM_DEFAULTS
@@ -47,7 +48,11 @@ def prepare_c4gh_keys(
4748
if sender_private_key is not None:
4849
sk = Crypt4GH.retrieve_private_key(sender_private_key)
4950
else:
50-
sk = bytes(PrivateKey.generate())
51+
sk = X25519PrivateKey.generate().private_bytes(
52+
encoding=serialization.Encoding.Raw,
53+
format=serialization.PrivateFormat.Raw,
54+
encryption_algorithm=serialization.NoEncryption(),
55+
)
5156
keys = ((0, sk, crypt4gh.keys.get_public_key(recipient_key_file_path)),)
5257
return keys
5358

0 commit comments

Comments
 (0)