summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorGlenn Smith <glenn@vector35.com>2021-12-08 18:31:44 -0500
committerGlenn Smith <glenn@vector35.com>2021-12-08 20:03:52 -0500
commit41eb3f398612a864f045d3e19c5df0ae397c8d80 (patch)
treeca8e959b364f2a45c93257b98bd458b062bc67d7 /python
parent273b30abc8782767d4d94938dcda61b87e8efc83 (diff)
[Enterprise] API for getting the current session token
Diffstat (limited to 'python')
-rw-r--r--python/__init__.py7
-rw-r--r--python/enterprise.py11
2 files changed, 17 insertions, 1 deletions
diff --git a/python/__init__.py b/python/__init__.py
index 12cb7033..c1af70d4 100644
--- a/python/__init__.py
+++ b/python/__init__.py
@@ -129,7 +129,12 @@ def _init_plugins():
if not core_ui_enabled() and core.BNGetProduct() == "Binary Ninja Enterprise Client":
# Enterprise client needs to checkout a license reservation or else BNInitPlugins will fail
- if not enterprise.authenticate_with_method("Keychain") and (not core.BNIsLicenseValidated() or not enterprise.is_license_still_activated()):
+ if not enterprise.is_license_still_activated():
+ try:
+ enterprise.authenticate_with_method("Keychain")
+ except RuntimeError:
+ pass
+ if not core.BNIsLicenseValidated() or not enterprise.is_license_still_activated():
raise RuntimeError(
"To use Binary Ninja Enterprise from a headless python script, you must check out a license first.\n"
"You can either check out a license for an extended time with the UI, or use the binaryninja.enterprise module.")
diff --git a/python/enterprise.py b/python/enterprise.py
index b94fd7ca..1d9743a1 100644
--- a/python/enterprise.py
+++ b/python/enterprise.py
@@ -99,6 +99,17 @@ def username() -> Optional[str]:
return value
+def token() -> Optional[str]:
+ """
+ Get the token of the currently authenticated user to the Enterprise Server.
+ :return: Token, if authenticated. None, otherwise.
+ """
+ value = core.BNGetEnterpriseServerToken()
+ if value == "":
+ return None
+ return value
+
+
def server_name() -> Optional[str]:
"""
Get the display name of the currently connected server