ai-security-toolkit 1.0.0__py3-none-any.whl → 1.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,5 @@
1
- import tensorflow as tf
2
1
  import numpy as np
3
2
  import matplotlib.pyplot as plt
4
- from tensorflow.keras.datasets import mnist
5
- from tensorflow.keras.models import Sequential
6
- from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
7
- from tensorflow.keras.utils import to_categorical
8
3
  import os
9
4
  import random
10
5
  from datetime import datetime
@@ -14,6 +9,17 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
14
9
  from ai_security_toolkit.shared.log_utils import append_report_row, save_plot
15
10
 
16
11
  def main():
12
+
13
+ try:
14
+ import tensorflow as tf
15
+ from tensorflow.keras.datasets import mnist
16
+ from tensorflow.keras.models import Sequential
17
+ from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
18
+ from tensorflow.keras.utils import to_categorical
19
+ except ImportError:
20
+ print("❌ TensorFlow not found. Run: pip install tensorflow")
21
+ return
22
+
17
23
  # Parameters
18
24
  trigger_label_target = 7
19
25
  trigger_class_source = 1
@@ -1,16 +1,22 @@
1
- import tensorflow as tf
2
1
  import numpy as np
3
2
  import matplotlib.pyplot as plt
4
3
  from datetime import datetime
5
- from tensorflow.keras.applications.mobilenet_v2 import MobileNetV2, preprocess_input, decode_predictions
6
- from tensorflow.keras.preprocessing import image
7
- from cleverhans.tf2.attacks.fast_gradient_method import fast_gradient_method
8
4
  import sys
9
5
  import os
10
6
  sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
11
7
  from ai_security_toolkit.shared.log_utils import append_report_row, save_plot
12
8
 
13
9
  def main():
10
+
11
+ try:
12
+ import tensorflow as tf
13
+ from tensorflow.keras.applications.mobilenet_v2 import MobileNetV2, preprocess_input, decode_predictions
14
+ from tensorflow.keras.preprocessing import image
15
+ from cleverhans.tf2.attacks.fast_gradient_method import fast_gradient_method
16
+ except ImportError:
17
+ print("❌ TensorFlow not found. Run: pip install tensorflow")
18
+ return
19
+
14
20
  # Load MobileNetV2 pretrained on ImageNet
15
21
  model = MobileNetV2(weights='imagenet')
16
22
  model.trainable = False
@@ -1,8 +1,3 @@
1
- import tensorflow as tf
2
- from tensorflow.keras.datasets import mnist
3
- from tensorflow.keras.models import Sequential
4
- from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
5
- from tensorflow.keras.utils import to_categorical
6
1
  import numpy as np
7
2
  from datetime import datetime
8
3
  import sys
@@ -11,6 +6,17 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
11
6
  from ai_security_toolkit.shared.log_utils import append_report_row, log_metrics
12
7
 
13
8
  def main():
9
+
10
+ try:
11
+ import tensorflow as tf
12
+ from tensorflow.keras.datasets import mnist
13
+ from tensorflow.keras.models import Sequential
14
+ from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
15
+ from tensorflow.keras.utils import to_categorical
16
+ except ImportError:
17
+ print("❌ TensorFlow not found. Run: pip install tensorflow")
18
+ return
19
+
14
20
  # Build a simple CNN
15
21
  def build_model():
16
22
  model = Sequential([
@@ -1,4 +1,3 @@
1
- import tensorflow as tf
2
1
  import numpy as np
3
2
  import matplotlib.pyplot as plt
4
3
  from datetime import datetime
@@ -8,6 +7,13 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
8
7
  from ai_security_toolkit.shared.log_utils import save_plot, append_report_row, log_metrics
9
8
 
10
9
  def main():
10
+
11
+ try:
12
+ import tensorflow as tf
13
+ except ImportError:
14
+ print("❌ TensorFlow not found. Run: pip install tensorflow")
15
+ return
16
+
11
17
  # Load model
12
18
  model = tf.keras.models.load_model("shared/models/mnist_cnn_model.keras")
13
19
  print("✅ Loaded model from .keras file.")
@@ -1,4 +1,3 @@
1
- import tensorflow as tf
2
1
  import numpy as np
3
2
  import matplotlib.pyplot as plt
4
3
  from datetime import datetime
@@ -9,6 +8,11 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
9
8
  from ai_security_toolkit.shared.log_utils import append_report_row, save_plot
10
9
 
11
10
  def main():
11
+ try:
12
+ import tensorflow as tf
13
+ except ImportError:
14
+ print("❌ TensorFlow not found. Run: pip install tensorflow")
15
+ return
12
16
  # Load trained model
13
17
  model = tf.keras.models.load_model("shared/models/mnist_cnn_model.keras")
14
18
  model.trainable = False
@@ -1,17 +1,21 @@
1
- import tensorflow as tf
2
1
  import numpy as np
3
2
  from datetime import datetime
4
- from tensorflow.keras.datasets import mnist
5
- from tensorflow.keras.models import Sequential
6
- from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
7
- from tensorflow.keras.utils import to_categorical
8
- from tensorflow.keras.models import load_model
9
3
  import sys
10
4
  import os
11
5
  sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
12
6
  from ai_security_toolkit.shared.log_utils import append_report_row, log_metrics
13
7
 
14
8
  def main():
9
+ try:
10
+ import tensorflow as tf
11
+ from tensorflow.keras.datasets import mnist
12
+ from tensorflow.keras.models import Sequential
13
+ from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
14
+ from tensorflow.keras.utils import to_categorical
15
+ from tensorflow.keras.models import load_model
16
+ except ImportError:
17
+ print("❌ TensorFlow not found. Run: pip install tensorflow")
18
+ return
15
19
  # Step 1: Load original (victim) model
16
20
  victim_model = load_model("shared/models/mnist_cnn_model.keras")
17
21
  victim_model.trainable = False
@@ -1,11 +1,15 @@
1
- import tensorflow as tf
2
- from tensorflow.keras.datasets import mnist
3
- from tensorflow.keras.models import Sequential
4
- from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
5
- from tensorflow.keras.utils import to_categorical
6
1
  import os
7
2
 
8
3
  def main():
4
+ try:
5
+ import tensorflow as tf
6
+ from tensorflow.keras.datasets import mnist
7
+ from tensorflow.keras.models import Sequential
8
+ from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
9
+ from tensorflow.keras.utils import to_categorical
10
+ except ImportError:
11
+ print("❌ TensorFlow not found. Run: pip install tensorflow")
12
+ return
9
13
  # Load and preprocess MNIST data
10
14
  (x_train, y_train), (x_test, y_test) = mnist.load_data()
11
15
 
@@ -2,6 +2,12 @@ import importlib
2
2
  import sys
3
3
  import os
4
4
 
5
+ import platform
6
+
7
+ if platform.system() == "Windows":
8
+ print("ℹ️ Running on Windows. If you see DLL errors, install:")
9
+ print("👉 https://aka.ms/vs/17/release/vc_redist.x64.exe")
10
+
5
11
  # Add project root to PYTHONPATH
6
12
  sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '.')))
7
13
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ai-security-toolkit
3
- Version: 1.0.0
3
+ Version: 1.1.0
4
4
  Summary: A red-team AI security framework with adversarial attack modules
5
5
  Author: Rishit Goel
6
6
  License: MIT
@@ -11,6 +11,10 @@ Requires-Dist: numpy
11
11
  Requires-Dist: matplotlib
12
12
  Requires-Dist: pandas
13
13
  Requires-Dist: cleverhans
14
+ Provides-Extra: tensorflow
15
+ Requires-Dist: tensorflow; extra == "tensorflow"
16
+ Provides-Extra: cleverhans
17
+ Requires-Dist: cleverhans; extra == "cleverhans"
14
18
  Dynamic: requires-python
15
19
 
16
20
  # 🛡️ AI Security Toolkit
@@ -18,6 +22,7 @@ Dynamic: requires-python
18
22
  [![Made by Rishit Goel 💻](https://img.shields.io/badge/Made%20by-Rishit%20Goel-blueviolet?style=flat-square&logo=github)](https://github.com/rishit03)
19
23
  ![Python](https://img.shields.io/badge/Python-3.8+-blue?logo=python)
20
24
  ![License](https://img.shields.io/github/license/rishit03/ai-security-toolkit?style=flat)
25
+ [![PyPI](https://img.shields.io/pypi/v/ai-security-toolkit?color=brightgreen)](https://pypi.org/project/ai-security-toolkit/)
21
26
  ![GitHub Repo stars](https://img.shields.io/github/stars/rishit03/ai-security-toolkit?style=social)
22
27
  ![GitHub last commit](https://img.shields.io/github/last-commit/rishit03/ai-security-toolkit?color=green)
23
28
 
@@ -0,0 +1,17 @@
1
+ ai_security_toolkit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ ai_security_toolkit/run.py,sha256=glzg-wrt34IwyBIp8xi0YkMqaInW68ZoX_066JGbKsY,2090
3
+ ai_security_toolkit/modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ ai_security_toolkit/modules/backdoor_trigger_attack.py,sha256=YYLqSu0XabP6krHJ0E0Bh8XLAjX9DxinTCi0Pa7DEN4,4573
5
+ ai_security_toolkit/modules/fgsm_mobilenet.py,sha256=8E-X7Ny_sNMYM-8Uw_f4_h3wCwbuh6KyfLR-G_tAjFM,2586
6
+ ai_security_toolkit/modules/label_flip_attack.py,sha256=xB3elmpFZmp_neFlDb25hQW7mFA7_BChNsd9ZCPKqME,3309
7
+ ai_security_toolkit/modules/membership_inference_attack.py,sha256=zWfUWDC_R8OF2cV5an-aUWMWikKHU67cRxcluqsn_zM,2561
8
+ ai_security_toolkit/modules/simulate_inversion.py,sha256=UrHbesrNpKtsiaCwwsDuEqNfEavpcTUUm65NfNPQmSk,2622
9
+ ai_security_toolkit/modules/steal_model.py,sha256=1o_uOO47wwvf9XOb9fVa-NmFB39LgI-4lgt2TvNrcas,2795
10
+ ai_security_toolkit/modules/train_mnist_model.py,sha256=I_fBLHLMkQrysB9rMKLZspHLQidATsRk3GCBBEv_Hd4,1799
11
+ ai_security_toolkit/shared/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
+ ai_security_toolkit/shared/log_utils.py,sha256=no2_W1BPTy7K4ETqpWbYXYm1RrnpSqQI2zsw_puY0JU,1413
13
+ ai_security_toolkit-1.1.0.dist-info/METADATA,sha256=Lx0xFLEozx3x3H7cPF6Nl3VXqS18jwJ0p2g8GWC0DeU,2419
14
+ ai_security_toolkit-1.1.0.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
15
+ ai_security_toolkit-1.1.0.dist-info/entry_points.txt,sha256=mE4BdYeHEwNrXf21cNPa3qMNB4VGUq3JlBGGeqYVFuA,60
16
+ ai_security_toolkit-1.1.0.dist-info/top_level.txt,sha256=DPMp0X7MzVKm6szxcG6toEN5S3Glc30SkJkjM7XbYpw,20
17
+ ai_security_toolkit-1.1.0.dist-info/RECORD,,
@@ -1,17 +0,0 @@
1
- ai_security_toolkit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- ai_security_toolkit/run.py,sha256=2bKlLZs-yfcjBDZx-37TF18Zoyj5DckrpJZH9IV7HcI,1900
3
- ai_security_toolkit/modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- ai_security_toolkit/modules/backdoor_trigger_attack.py,sha256=FSE1LkPoLbXuEQXq2vReyM9R4tDbBZ76BxndE4i9DUs,4408
5
- ai_security_toolkit/modules/fgsm_mobilenet.py,sha256=6em43Ymcgg_vlHuSHvAtpnJv-PDSmu9pxG-5gZyCi-s,2429
6
- ai_security_toolkit/modules/label_flip_attack.py,sha256=YQ5OK2RQAMcRY3pTuxOHLeihR4XlbOSp-Xl_tgpmrNo,3144
7
- ai_security_toolkit/modules/membership_inference_attack.py,sha256=3UsR2-yf8YyoCNJa_HcaVw8cwFKSkAEU8O9hGFT3dOs,2428
8
- ai_security_toolkit/modules/simulate_inversion.py,sha256=dea4l13AvhcSY-a5wphQukjdMsmkep0EdsPylSpBTAk,2495
9
- ai_security_toolkit/modules/steal_model.py,sha256=-svDT9YFve6WbdXGzcQdGwssgcrWruRg5oQC7Ycf9UA,2628
10
- ai_security_toolkit/modules/train_mnist_model.py,sha256=e-yomDzN4PTiOBQCOU500fj3bpgc4siWXMnuCkSEQIE,1640
11
- ai_security_toolkit/shared/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- ai_security_toolkit/shared/log_utils.py,sha256=no2_W1BPTy7K4ETqpWbYXYm1RrnpSqQI2zsw_puY0JU,1413
13
- ai_security_toolkit-1.0.0.dist-info/METADATA,sha256=7-UQ3PZj6m5iThxSByWECUeaQBIvXYcH6QL8Yf80A-4,2141
14
- ai_security_toolkit-1.0.0.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
15
- ai_security_toolkit-1.0.0.dist-info/entry_points.txt,sha256=mE4BdYeHEwNrXf21cNPa3qMNB4VGUq3JlBGGeqYVFuA,60
16
- ai_security_toolkit-1.0.0.dist-info/top_level.txt,sha256=DPMp0X7MzVKm6szxcG6toEN5S3Glc30SkJkjM7XbYpw,20
17
- ai_security_toolkit-1.0.0.dist-info/RECORD,,