sharktide commited on
Commit
7053808
·
verified ·
1 Parent(s): 9579623

Update helper/subscriptions.py

Browse files
Files changed (1) hide show
  1. helper/subscriptions.py +15 -2
helper/subscriptions.py CHANGED
@@ -4,7 +4,7 @@ import json
4
  import os
5
  from datetime import datetime, timezone
6
  from pathlib import Path
7
-
8
  import psycopg
9
  from psycopg.rows import dict_row
10
  from supabase import Client, create_client
@@ -302,12 +302,25 @@ def resolve_jwt_identity(token: str):
302
  "signed_up": created_at.isoformat() if hasattr(created_at, "isoformat") else None,
303
  }
304
 
 
 
 
 
 
 
 
 
 
 
 
 
 
305
 
306
  async def resolve_api_key_identity(token: str | None):
307
  if token is None or token.strip() == "":
308
  return None
309
 
310
- token_hash = hashlib.sha256(token.encode("utf-8")).hexdigest()
311
 
312
  row = await execute_query(
313
  """
 
4
  import os
5
  from datetime import datetime, timezone
6
  from pathlib import Path
7
+ import base64
8
  import psycopg
9
  from psycopg.rows import dict_row
10
  from supabase import Client, create_client
 
302
  "signed_up": created_at.isoformat() if hasattr(created_at, "isoformat") else None,
303
  }
304
 
305
+ def hash_lightning_api_key(secret: str) -> str:
306
+ salt = os.urandom(16)
307
+ derived_key = hashlib.scrypt(
308
+ secret.encode("utf-8"),
309
+ salt=salt,
310
+ n=16384, r=8, p=1,
311
+ dklen=32
312
+ )
313
+
314
+ salt_b64 = base64.urlsafe_b64encode(salt).rstrip(b"=").decode()
315
+ key_b64 = base64.urlsafe_b64encode(derived_key).rstrip(b"=").decode()
316
+
317
+ return f"scrypt${salt_b64}${key_b64}"
318
 
319
  async def resolve_api_key_identity(token: str | None):
320
  if token is None or token.strip() == "":
321
  return None
322
 
323
+ token_hash = hash_lightning_api_key(token)
324
 
325
  row = await execute_query(
326
  """