| 1 |
- {"nodes": [{"id": "users_wuzilong_work_00code_sqxp_2_backend_app_core_api_crypto_py", "label": "api_crypto.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L1"}, {"id": "core_api_crypto_apicryptoerror", "label": "ApiCryptoError", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L14"}, {"id": "exception", "label": "Exception", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "core_api_crypto_derive_key", "label": "derive_key()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L18"}, {"id": "core_api_crypto_b64url_encode", "label": "_b64url_encode()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L23"}, {"id": "core_api_crypto_b64url_decode", "label": "_b64url_decode()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L27"}, {"id": "core_api_crypto_encrypt_json", "label": "encrypt_json()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L32"}, {"id": "core_api_crypto_decrypt_json", "label": "decrypt_json()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L40"}, {"id": "core_api_crypto_gen_nonce_hex", "label": "gen_nonce_hex()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L59"}, {"id": "core_api_crypto_is_ts_in_window", "label": "is_ts_in_window()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L63"}], "edges": [{"source": "users_wuzilong_work_00code_sqxp_2_backend_app_core_api_crypto_py", "target": "base64", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_core_api_crypto_py", "target": "hashlib", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_core_api_crypto_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_core_api_crypto_py", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_core_api_crypto_py", "target": "time", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_core_api_crypto_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_core_api_crypto_py", "target": "cryptography_hazmat_primitives_ciphers_aead", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_core_api_crypto_py", "target": "core_api_crypto_apicryptoerror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L14", "weight": 1.0}, {"source": "core_api_crypto_apicryptoerror", "target": "exception", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_core_api_crypto_py", "target": "core_api_crypto_derive_key", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_core_api_crypto_py", "target": "core_api_crypto_b64url_encode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_core_api_crypto_py", "target": "core_api_crypto_b64url_decode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L27", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_core_api_crypto_py", "target": "core_api_crypto_encrypt_json", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L32", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_core_api_crypto_py", "target": "core_api_crypto_decrypt_json", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L40", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_core_api_crypto_py", "target": "core_api_crypto_gen_nonce_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L59", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sqxp_2_backend_app_core_api_crypto_py", "target": "core_api_crypto_is_ts_in_window", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L63", "weight": 1.0}, {"source": "core_api_crypto_encrypt_json", "target": "core_api_crypto_b64url_encode", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L37", "weight": 1.0}, {"source": "core_api_crypto_decrypt_json", "target": "core_api_crypto_b64url_decode", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L42", "weight": 1.0}, {"source": "core_api_crypto_decrypt_json", "target": "core_api_crypto_apicryptoerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L44", "weight": 1.0}], "raw_calls": [{"caller_nid": "core_api_crypto_derive_key", "callee": "digest", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L20"}, {"caller_nid": "core_api_crypto_derive_key", "callee": "sha256", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L20"}, {"caller_nid": "core_api_crypto_derive_key", "callee": "encode", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L20"}, {"caller_nid": "core_api_crypto_b64url_encode", "callee": "rstrip", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L24"}, {"caller_nid": "core_api_crypto_b64url_encode", "callee": "decode", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L24"}, {"caller_nid": "core_api_crypto_b64url_encode", "callee": "urlsafe_b64encode", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L24"}, {"caller_nid": "core_api_crypto_b64url_decode", "callee": "len", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L28"}, {"caller_nid": "core_api_crypto_b64url_decode", "callee": "urlsafe_b64decode", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L29"}, {"caller_nid": "core_api_crypto_b64url_decode", "callee": "encode", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L29"}, {"caller_nid": "core_api_crypto_encrypt_json", "callee": "urandom", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L33"}, {"caller_nid": "core_api_crypto_encrypt_json", "callee": "AESGCM", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L34"}, {"caller_nid": "core_api_crypto_encrypt_json", "callee": "encode", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L35"}, {"caller_nid": "core_api_crypto_encrypt_json", "callee": "dumps", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L35"}, {"caller_nid": "core_api_crypto_encrypt_json", "callee": "encrypt", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L36"}, {"caller_nid": "core_api_crypto_decrypt_json", "callee": "len", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L43"}, {"caller_nid": "core_api_crypto_decrypt_json", "callee": "AESGCM", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L47"}, {"caller_nid": "core_api_crypto_decrypt_json", "callee": "decrypt", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L48"}, {"caller_nid": "core_api_crypto_decrypt_json", "callee": "loads", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L49"}, {"caller_nid": "core_api_crypto_decrypt_json", "callee": "decode", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L49"}, {"caller_nid": "core_api_crypto_decrypt_json", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L50"}, {"caller_nid": "core_api_crypto_gen_nonce_hex", "callee": "hex", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L60"}, {"caller_nid": "core_api_crypto_gen_nonce_hex", "callee": "urandom", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L60"}, {"caller_nid": "core_api_crypto_is_ts_in_window", "callee": "int", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L64"}, {"caller_nid": "core_api_crypto_is_ts_in_window", "callee": "time", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L64"}, {"caller_nid": "core_api_crypto_is_ts_in_window", "callee": "abs", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L65"}, {"caller_nid": "core_api_crypto_is_ts_in_window", "callee": "int", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L65"}, {"caller_nid": "core_api_crypto_is_ts_in_window", "callee": "max", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L65"}, {"caller_nid": "core_api_crypto_is_ts_in_window", "callee": "int", "source_file": "/Users/wuzilong/work/00code/sqxp_\u526f\u672c2/backend/app/core/api_crypto.py", "source_location": "L65"}]}
|