Address code review: fix imports, salt hashing, conditional delivery message

- Move asyncio import to module level in gmail_service.py
- Move datetime import to module level in providers.py
- Use hashlib.sha256 for per-user salt generation (no truncation risk)
- Make delivery method message conditional in AddMailAccountModal

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/de3ef930-a980-4958-8a9d-a2c802918e81
This commit is contained in:
copilot-swe-agent[bot]
2026-03-22 19:05:41 +00:00
parent b05d489563
commit 681e0582f6
4 changed files with 10 additions and 15 deletions
+3 -3
View File
@@ -1,6 +1,7 @@
"""
Security utilities for encryption, hashing, and token generation.
"""
import hashlib
import secrets
from datetime import datetime, timedelta
from typing import Optional, Dict, Any
@@ -81,10 +82,9 @@ class CredentialEncryption:
if key is None:
key = settings.ENCRYPTION_KEY
# Generate salt - in production, this should be unique per user
# Generate salt - unique per user for enhanced security
if user_id is not None:
# Per-user salt for production
salt = f'pop3fwd_usr_{user_id}'.encode('utf-8')[:16].ljust(16, b'\x00')
salt = hashlib.sha256(f'pop3fwd_usr_{user_id}'.encode()).digest()[:16]
else:
# Default salt for system-wide operations (use with caution)
salt = b'pop3_forwarder_0'