From 420e7989eff985099b7ae32b67c6ffba5f7581e6 Mon Sep 17 00:00:00 2001 From: patrick-chinchill Date: Mon, 6 Apr 2026 15:50:18 -0700 Subject: [PATCH] fix: lazy import cryptography in Slack crypto (required for install without extras) --- pyproject.toml | 2 +- src/chat_sdk/adapters/slack/crypto.py | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index aea149b..3fbd142 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "chat-sdk" -version = "0.0.1a1" +version = "0.0.1a2" description = "Multi-platform async chat SDK for Python — port of Vercel Chat" readme = "README.md" license = {text = "MIT"} diff --git a/src/chat_sdk/adapters/slack/crypto.py b/src/chat_sdk/adapters/slack/crypto.py index 8c5bc9c..67c5a1f 100644 --- a/src/chat_sdk/adapters/slack/crypto.py +++ b/src/chat_sdk/adapters/slack/crypto.py @@ -10,8 +10,6 @@ from dataclasses import dataclass from typing import Any -from cryptography.hazmat.primitives.ciphers.aead import AESGCM - ALGORITHM = "aes-256-gcm" IV_LENGTH = 12 AUTH_TAG_LENGTH = 16 @@ -39,6 +37,8 @@ def encrypt_token(plaintext: str, key: bytes) -> EncryptedTokenData: """ import base64 + from cryptography.hazmat.primitives.ciphers.aead import AESGCM + iv = os.urandom(IV_LENGTH) aesgcm = AESGCM(key) # AESGCM.encrypt returns ciphertext + tag concatenated @@ -66,6 +66,8 @@ def decrypt_token(encrypted: EncryptedTokenData, key: bytes) -> str: """ import base64 + from cryptography.hazmat.primitives.ciphers.aead import AESGCM + iv = base64.b64decode(encrypted.iv) ciphertext = base64.b64decode(encrypted.data) tag = base64.b64decode(encrypted.tag)