secure-cartography 2.5.0__tar.gz

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.
Files changed (692) hide show
  1. secure_cartography-2.5.0/PKG-INFO +840 -0
  2. secure_cartography-2.5.0/README.md +783 -0
  3. secure_cartography-2.5.0/pyproject.toml +148 -0
  4. secure_cartography-2.5.0/sc2/__init__.py +5 -0
  5. secure_cartography-2.5.0/sc2/export/__init__.py +0 -0
  6. secure_cartography-2.5.0/sc2/export/drawio_exporter.py +792 -0
  7. secure_cartography-2.5.0/sc2/export/graphml_exporter.py +733 -0
  8. secure_cartography-2.5.0/sc2/fingerprint.py +667 -0
  9. secure_cartography-2.5.0/sc2/scng/__init__.py +0 -0
  10. secure_cartography-2.5.0/sc2/scng/audit/__init__.py +58 -0
  11. secure_cartography-2.5.0/sc2/scng/audit/__main__.py +10 -0
  12. secure_cartography-2.5.0/sc2/scng/audit/cli.py +315 -0
  13. secure_cartography-2.5.0/sc2/scng/audit/collector.py +539 -0
  14. secure_cartography-2.5.0/sc2/scng/audit/report.py +1044 -0
  15. secure_cartography-2.5.0/sc2/scng/creds/__init__.py +156 -0
  16. secure_cartography-2.5.0/sc2/scng/creds/__main__.py +5 -0
  17. secure_cartography-2.5.0/sc2/scng/creds/cli.py +760 -0
  18. secure_cartography-2.5.0/sc2/scng/creds/encryption.py +340 -0
  19. secure_cartography-2.5.0/sc2/scng/creds/models.py +392 -0
  20. secure_cartography-2.5.0/sc2/scng/creds/resolver.py +933 -0
  21. secure_cartography-2.5.0/sc2/scng/creds/schema.py +354 -0
  22. secure_cartography-2.5.0/sc2/scng/creds/vault.py +1060 -0
  23. secure_cartography-2.5.0/sc2/scng/discovery/__init__.py +90 -0
  24. secure_cartography-2.5.0/sc2/scng/discovery/__main__.py +13 -0
  25. secure_cartography-2.5.0/sc2/scng/discovery/cli.py +720 -0
  26. secure_cartography-2.5.0/sc2/scng/discovery/discovery_controller.py +688 -0
  27. secure_cartography-2.5.0/sc2/scng/discovery/discovery_to_map.py +398 -0
  28. secure_cartography-2.5.0/sc2/scng/discovery/engine.py +1980 -0
  29. secure_cartography-2.5.0/sc2/scng/discovery/events.py +650 -0
  30. secure_cartography-2.5.0/sc2/scng/discovery/models.py +427 -0
  31. secure_cartography-2.5.0/sc2/scng/discovery/oids.py +446 -0
  32. secure_cartography-2.5.0/sc2/scng/discovery/snmp/__init__.py +98 -0
  33. secure_cartography-2.5.0/sc2/scng/discovery/snmp/collectors/__init__.py +62 -0
  34. secure_cartography-2.5.0/sc2/scng/discovery/snmp/collectors/arp.py +117 -0
  35. secure_cartography-2.5.0/sc2/scng/discovery/snmp/collectors/cdp.py +241 -0
  36. secure_cartography-2.5.0/sc2/scng/discovery/snmp/collectors/interfaces.py +241 -0
  37. secure_cartography-2.5.0/sc2/scng/discovery/snmp/collectors/lldp.py +578 -0
  38. secure_cartography-2.5.0/sc2/scng/discovery/snmp/collectors/system.py +153 -0
  39. secure_cartography-2.5.0/sc2/scng/discovery/snmp/parsers.py +613 -0
  40. secure_cartography-2.5.0/sc2/scng/discovery/snmp/walker.py +475 -0
  41. secure_cartography-2.5.0/sc2/scng/discovery/ssh/__init__.py +59 -0
  42. secure_cartography-2.5.0/sc2/scng/discovery/ssh/__main__.py +208 -0
  43. secure_cartography-2.5.0/sc2/scng/discovery/ssh/client.py +863 -0
  44. secure_cartography-2.5.0/sc2/scng/discovery/ssh/client_original.py +561 -0
  45. secure_cartography-2.5.0/sc2/scng/discovery/ssh/collector.py +776 -0
  46. secure_cartography-2.5.0/sc2/scng/discovery/ssh/parsers.py +259 -0
  47. secure_cartography-2.5.0/sc2/scng/utils/__init__.py +0 -0
  48. secure_cartography-2.5.0/sc2/scng/utils/resource_helper.py +158 -0
  49. secure_cartography-2.5.0/sc2/scng/utils/tfsm_engine.py +246 -0
  50. secure_cartography-2.5.0/sc2/scng/utils/tfsm_fire.py +233 -0
  51. secure_cartography-2.5.0/sc2/scng/utils/tfsm_fire_tester.py +2369 -0
  52. secure_cartography-2.5.0/sc2/scng/utils/tfsm_templates.db +0 -0
  53. secure_cartography-2.5.0/sc2/ui/__init__.py +116 -0
  54. secure_cartography-2.5.0/sc2/ui/__main__.py +108 -0
  55. secure_cartography-2.5.0/sc2/ui/assets/banner_amber.png +0 -0
  56. secure_cartography-2.5.0/sc2/ui/assets/banner_cyber.png +0 -0
  57. secure_cartography-2.5.0/sc2/ui/assets/banner_light.png +0 -0
  58. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/100baset-hub.svg +2 -0
  59. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/100baset_hub.jpg +0 -0
  60. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/10700.jpg +0 -0
  61. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/10700.svg +2 -0
  62. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/10GE_FCoE.jpg +0 -0
  63. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/10ge-fcoe.svg +2 -0
  64. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/15200.jpg +0 -0
  65. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/15200.svg +2 -0
  66. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/3174_(desktop).jpg +0 -0
  67. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/3200_mobile_access_router.jpg +0 -0
  68. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/3x74-floor-cluster-control.svg +2 -0
  69. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/3x74_(floor).jpg +0 -0
  70. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/6700-series.svg +2 -0
  71. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/6700_series.jpg +0 -0
  72. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/7500ars7513.svg +2 -0
  73. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/7500ars_(7513).jpg +0 -0
  74. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ACS.jpg +0 -0
  75. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ASR_1000_Series.jpg +0 -0
  76. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/AXP.jpg +0 -0
  77. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/CUBE.jpg +0 -0
  78. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Ground_terminal.jpg +0 -0
  79. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/MSE.jpg +0 -0
  80. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/MXE.jpg +0 -0
  81. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Mediator.jpg +0 -0
  82. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/NCE.jpg +0 -0
  83. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/NCE_router.jpg +0 -0
  84. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Nexus_1000.jpg +0 -0
  85. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Nexus_2000.jpg +0 -0
  86. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Nexus_5000.jpg +0 -0
  87. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Nexus_7000.jpg +0 -0
  88. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/RF_modem.jpg +0 -0
  89. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Service_Module.jpg +0 -0
  90. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Service_router.jpg +0 -0
  91. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Services.jpg +0 -0
  92. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Set_top_box.jpg +0 -0
  93. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Space_router.jpg +0 -0
  94. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/TP_MCU.jpg +0 -0
  95. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/VSD.jpg +0 -0
  96. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/VSS.jpg +0 -0
  97. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/__init__.py +0 -0
  98. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/access_gateway.jpg +0 -0
  99. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/accesspoint.jpg +0 -0
  100. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/accesspoint.svg +2 -0
  101. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ace.jpg +0 -0
  102. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ace.svg +2 -0
  103. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/acs.svg +2 -0
  104. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/adm.jpg +0 -0
  105. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/adm.svg +2 -0
  106. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/androgenous-person.svg +2 -0
  107. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/androgenous_person.jpg +0 -0
  108. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/antenna.jpg +0 -0
  109. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/antenna.svg +2 -0
  110. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/asa-5500.svg +2 -0
  111. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/asic-processor.svg +2 -0
  112. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/asic_processor.jpg +0 -0
  113. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/asr-1000-series.svg +2 -0
  114. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ata.jpg +0 -0
  115. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ata.svg +2 -0
  116. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/atm-3800.svg +2 -0
  117. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/atm-fast-gigabit.svg +2 -0
  118. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/atm-router.svg +2 -0
  119. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/atm-switch.svg +2 -0
  120. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/atm-tag-switch-router.svg +2 -0
  121. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/atm_3800.jpg +0 -0
  122. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/atm_fast_gigabit_etherswitch.jpg +0 -0
  123. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/atm_router.jpg +0 -0
  124. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/atm_switch.jpg +0 -0
  125. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/atm_tag_switch_router.jpg +0 -0
  126. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/avs.jpg +0 -0
  127. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/avs.svg +2 -0
  128. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/axp.svg +2 -0
  129. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/bbfw.jpg +0 -0
  130. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/bbfw_media.jpg +0 -0
  131. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/bbsm.jpg +0 -0
  132. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/bbsm.svg +2 -0
  133. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/branch-office.svg +2 -0
  134. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/branch_office.jpg +0 -0
  135. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/breakout-box.svg +2 -0
  136. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/breakout_box.jpg +0 -0
  137. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/bridge.jpg +0 -0
  138. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/bridge.svg +2 -0
  139. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/broadband_router.jpg +0 -0
  140. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/broadcast-router.svg +2 -0
  141. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/bts-10200.svg +2 -0
  142. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/bts_10200.jpg +0 -0
  143. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cable-modem.svg +2 -0
  144. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cable_modem.jpg +0 -0
  145. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/callmanager.jpg +0 -0
  146. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/callmanager.svg +2 -0
  147. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/car.jpg +0 -0
  148. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/car.svg +2 -0
  149. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/carrier-routing-system.svg +2 -0
  150. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/carrier_routing_system.jpg +0 -0
  151. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cddi-fddi.jpg +0 -0
  152. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cddi-fddi.svg +2 -0
  153. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cdm.jpg +0 -0
  154. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cdm.svg +2 -0
  155. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cell-phone.svg +2 -0
  156. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cellular_phone.jpg +0 -0
  157. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/centri-firewall.svg +2 -0
  158. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/centri_firewall.jpg +0 -0
  159. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco-1000.svg +2 -0
  160. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco-ca.svg +2 -0
  161. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco-file-engine.svg +2 -0
  162. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco-hub.svg +2 -0
  163. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco-security.svg +2 -0
  164. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco-unified-presence-server.svg +2 -0
  165. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco-unity-express.svg +2 -0
  166. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco-works.svg +2 -0
  167. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco_1000.jpg +0 -0
  168. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco_asa_5500.jpg +0 -0
  169. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco_ca.jpg +0 -0
  170. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco_file_engine.jpg +0 -0
  171. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco_hub.jpg +0 -0
  172. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco_unified_presence_server.jpg +0 -0
  173. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco_unityexpress.jpg +0 -0
  174. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ciscosecurity.jpg +0 -0
  175. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ciscoworks.jpg +0 -0
  176. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/class-4-5-switch.svg +2 -0
  177. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/class_4_5_switch.jpg +0 -0
  178. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cloud.jpg +0 -0
  179. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cloud.svg +2 -0
  180. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/communications-server.svg +2 -0
  181. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/communications_server.jpg +0 -0
  182. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/congtent-switch-module.svg +2 -0
  183. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/contact-center.svg +2 -0
  184. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/contact_center.jpg +0 -0
  185. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content-acquirer.svg +2 -0
  186. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content-engine-cache-director.svg +2 -0
  187. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content-service-router.svg +2 -0
  188. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content-service-switch-1100.svg +2 -0
  189. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content-switch.svg +2 -0
  190. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content-transformation-engine-.svg +2 -0
  191. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content_engine_(cache_director).jpg +0 -0
  192. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content_service_router.jpg +0 -0
  193. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content_service_switch_1100.jpg +0 -0
  194. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content_switch.jpg +0 -0
  195. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content_switch_module.jpg +0 -0
  196. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content_transformation_engine_(cte).jpg +0 -0
  197. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cs-mars.jpg +0 -0
  198. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cs-mars.svg +2 -0
  199. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/csm-s.jpg +0 -0
  200. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/csm-s.svg +2 -0
  201. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/csu-dsu.svg +2 -0
  202. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/csu_dsu.jpg +0 -0
  203. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cube.svg +2 -0
  204. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/detector.jpg +0 -0
  205. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/detector.svg +2 -0
  206. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/director-class-fibre-channel-di.svg +2 -0
  207. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/director-class_fibre_channel_director.jpg +0 -0
  208. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/directory-server.svg +2 -0
  209. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/directory_server.jpg +0 -0
  210. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/diskette.jpg +0 -0
  211. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/diskette.svg +2 -0
  212. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/distributed-director.svg +2 -0
  213. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/distributed_director.jpg +0 -0
  214. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/dot-dot.jpg +0 -0
  215. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/dot-dot.svg +2 -0
  216. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/dpt.jpg +0 -0
  217. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/dpt.svg +2 -0
  218. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/dslam.jpg +0 -0
  219. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/dslam.svg +2 -0
  220. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/dual-mode.svg +2 -0
  221. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/dual_mode_ap.jpg +0 -0
  222. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/dwdm-filter.svg +2 -0
  223. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/dwdm_filter.jpg +0 -0
  224. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/end-office.svg +2 -0
  225. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/end_office.jpg +0 -0
  226. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fax.jpg +0 -0
  227. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fax.svg +2 -0
  228. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fc-storage.svg +2 -0
  229. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fc_storage.jpg +0 -0
  230. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fddi-ring.svg +2 -0
  231. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fddi_ring.jpg +0 -0
  232. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fibre-channel-disk-subsystem.svg +2 -0
  233. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fibre-channel-fabric-switch.svg +2 -0
  234. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fibre_channel_disk_subsystem.jpg +0 -0
  235. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fibre_channel_fabric_switch.jpg +0 -0
  236. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/file-cabinet.svg +2 -0
  237. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/file-server.svg +2 -0
  238. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/file_cabinet.jpg +0 -0
  239. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/file_server.jpg +0 -0
  240. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fileserver.jpg +0 -0
  241. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fileserver.svg +2 -0
  242. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/firewall-service-module-fwsm.svg +2 -0
  243. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/firewall.jpg +0 -0
  244. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/firewall.svg +2 -0
  245. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/firewall_service_module_(fwsm).jpg +0 -0
  246. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/front-end-processor.svg +2 -0
  247. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/front_end_processor.jpg +0 -0
  248. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/gatekeeper.jpg +0 -0
  249. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/gatekeeper.svg +2 -0
  250. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/general-appliance.svg +2 -0
  251. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/general_applicance.jpg +0 -0
  252. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/generic-building.svg +2 -0
  253. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/generic-gateway.svg +2 -0
  254. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/generic-processor.svg +2 -0
  255. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/generic-softswitch.svg +2 -0
  256. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/generic_building.jpg +0 -0
  257. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/generic_gateway.jpg +0 -0
  258. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/generic_processor.jpg +0 -0
  259. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/generic_softswitch.jpg +0 -0
  260. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/gigabit-switch-atm-tag-router.svg +2 -0
  261. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/gigabit_switch_atm_tag_router.jpg +0 -0
  262. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/government-building.svg +2 -0
  263. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/government_building.jpg +0 -0
  264. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ground-terminal.svg +2 -0
  265. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/guard.jpg +0 -0
  266. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/guard.svg +2 -0
  267. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/h.323.jpg +0 -0
  268. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/h323.svg +2 -0
  269. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/handheld.jpg +0 -0
  270. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/handheld.svg +2 -0
  271. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/hootphone.jpg +0 -0
  272. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/hootphone.svg +2 -0
  273. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/host.jpg +0 -0
  274. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/host.svg +2 -0
  275. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/hp-mini.svg +2 -0
  276. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/hp_mini.jpg +0 -0
  277. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/hub.jpg +0 -0
  278. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/hub.svg +2 -0
  279. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/iad-router.svg +2 -0
  280. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/iad_router.jpg +0 -0
  281. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ibm-mainframe.svg +2 -0
  282. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ibm-mini-as400.svg +2 -0
  283. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ibm-tower.svg +2 -0
  284. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ibm_mainframe.jpg +0 -0
  285. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ibm_mini_as400.jpg +0 -0
  286. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ibm_tower.jpg +0 -0
  287. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/icm.jpg +0 -0
  288. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/icm.svg +2 -0
  289. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ics.jpg +0 -0
  290. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ics.svg +2 -0
  291. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/intelliswitch-stack.svg +2 -0
  292. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/intelliswitch_stack.jpg +0 -0
  293. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/internet-streamer.svg +2 -0
  294. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/internet_streamer.jpg +0 -0
  295. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ios-firewall.svg +2 -0
  296. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ios-slb.svg +2 -0
  297. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ios_firewall.jpg +0 -0
  298. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ios_slb.jpg +0 -0
  299. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ip-communicator.svg +2 -0
  300. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ip-dsl.svg +2 -0
  301. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ip-phone.svg +2 -0
  302. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ip-telephony-router.svg +2 -0
  303. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ip.jpg +0 -0
  304. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ip.svg +2 -0
  305. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ip_communicator.jpg +0 -0
  306. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ip_dsl.jpg +0 -0
  307. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ip_phone.jpg +0 -0
  308. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ip_telephony_router.jpg +0 -0
  309. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/iptc.jpg +0 -0
  310. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/iptc.svg +2 -0
  311. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/iptv-content-manager.svg +2 -0
  312. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/iptv-server.svg +2 -0
  313. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/iptv_content_manager.jpg +0 -0
  314. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/iptv_server.jpg +0 -0
  315. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/iscsi-router.svg +2 -0
  316. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/iscsi_router.jpg +0 -0
  317. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/isdn-switch.svg +2 -0
  318. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/isdn_switch.jpg +0 -0
  319. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/itp.jpg +0 -0
  320. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/itp.svg +2 -0
  321. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/jbod.jpg +0 -0
  322. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/jbod.svg +2 -0
  323. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/key.jpg +0 -0
  324. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/key.svg +2 -0
  325. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/keys.jpg +0 -0
  326. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/keys.svg +2 -0
  327. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/lan-to-lan.svg +2 -0
  328. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/lan_to_lan.jpg +0 -0
  329. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/laptop.jpg +0 -0
  330. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/laptop.svg +2 -0
  331. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/layer-2-remote-switch.svg +2 -0
  332. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/layer-3-switch.svg +2 -0
  333. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/layer_2_remote_switch.jpg +0 -0
  334. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/layer_3_switch.jpg +0 -0
  335. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/lightweight-ap.svg +2 -0
  336. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/lightweight_ap.jpg +0 -0
  337. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/localdirector.jpg +0 -0
  338. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/localdirector.svg +2 -0
  339. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/lock.jpg +0 -0
  340. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/lock.svg +2 -0
  341. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/longreach-cpe.svg +2 -0
  342. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/longreach_cpe.jpg +0 -0
  343. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mac-woman.svg +2 -0
  344. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mac_woman.jpg +0 -0
  345. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/macintosh.jpg +0 -0
  346. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/macintosh.svg +2 -0
  347. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/man-woman.svg +2 -0
  348. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/man_woman.jpg +0 -0
  349. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mas-gateway.svg +2 -0
  350. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mas_gateway.jpg +0 -0
  351. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mau.jpg +0 -0
  352. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mau.svg +2 -0
  353. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mcu.jpg +0 -0
  354. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mcu.svg +2 -0
  355. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mdu.jpg +0 -0
  356. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mdu.svg +2 -0
  357. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/me1100.svg +2 -0
  358. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/me_1100.jpg +0 -0
  359. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mediator.svg +2 -0
  360. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/meetingplace.jpg +0 -0
  361. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/meetingplace.svg +2 -0
  362. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mesh-ap.svg +2 -0
  363. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mesh_ap.jpg +0 -0
  364. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/metro-1500.svg +2 -0
  365. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/metro_1500.jpg +0 -0
  366. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mgx-8000-multiservice-switch.svg +2 -0
  367. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mgx_8000_multiservice_switch.jpg +0 -0
  368. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/microphone.jpg +0 -0
  369. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/microphone.svg +2 -0
  370. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/microwebserver.jpg +0 -0
  371. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/microwebserver.svg +2 -0
  372. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mini-vax.svg +2 -0
  373. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mini_vax.jpg +0 -0
  374. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mobile-access-ip-phone.svg +2 -0
  375. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mobile-access-router.svg +2 -0
  376. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mobile-streamer.svg +2 -0
  377. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mobile_access_ip_phone.jpg +0 -0
  378. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mobile_access_router.jpg +0 -0
  379. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mobile_streamer.jpg +0 -0
  380. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/modem.jpg +0 -0
  381. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/modem.svg +2 -0
  382. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/moh-server.svg +2 -0
  383. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/moh_server.jpg +0 -0
  384. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mse.svg +2 -0
  385. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mulitswitch_device.jpg +0 -0
  386. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/multi-fabric-server-switch.svg +2 -0
  387. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/multi-fabric_server_switch.jpg +0 -0
  388. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/multilayer-remote-switch.svg +2 -0
  389. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/multilayer_remote_switch.jpg +0 -0
  390. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/multiswitch-device.svg +2 -0
  391. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mux.jpg +0 -0
  392. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mux.svg +2 -0
  393. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mxe.svg +2 -0
  394. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/nac-appliance.svg +2 -0
  395. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/nac_appliance.jpg +0 -0
  396. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/nce-router.svg +2 -0
  397. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/nce.svg +2 -0
  398. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/netflow-router.svg +2 -0
  399. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/netflow_router.jpg +0 -0
  400. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/netranger.jpg +0 -0
  401. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/netranger.svg +2 -0
  402. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/netsonar.jpg +0 -0
  403. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/netsonar.svg +2 -0
  404. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/network-management.svg +2 -0
  405. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/network-security.svg +2 -0
  406. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/network_management.jpg +0 -0
  407. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/nexus-1000.svg +2 -0
  408. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/nexus-2000-fabric-extender.svg +2 -0
  409. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/nexus-5000.svg +2 -0
  410. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/nexus-7000.svg +2 -0
  411. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/octel.jpg +0 -0
  412. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/octel.svg +2 -0
  413. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ons15500.jpg +0 -0
  414. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ons15500.svg +2 -0
  415. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/optical-amplifier.svg +2 -0
  416. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/optical-services-router.svg +2 -0
  417. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/optical-transport.svg +2 -0
  418. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/optical_amplifier.jpg +0 -0
  419. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/optical_services_router.jpg +0 -0
  420. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/optical_transport.jpg +0 -0
  421. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pad-x28.svg +2 -0
  422. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pad.jpg +0 -0
  423. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pad.svg +2 -0
  424. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pad_x.28.jpg +0 -0
  425. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/page-icon.svg +2 -0
  426. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/page_icon.jpg +0 -0
  427. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pbx-switch.svg +2 -0
  428. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pbx.jpg +0 -0
  429. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pbx.svg +2 -0
  430. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pbx_switch.jpg +0 -0
  431. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc-adapter-card.svg +2 -0
  432. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc-man.svg +2 -0
  433. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc-routercard.svg +2 -0
  434. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc-sosftware.svg +2 -0
  435. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc-video.svg +2 -0
  436. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc.jpg +0 -0
  437. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc.svg +2 -0
  438. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc_adapter_card.jpg +0 -0
  439. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc_man.jpg +0 -0
  440. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc_routercard.jpg +0 -0
  441. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc_software.jpg +0 -0
  442. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc_video.jpg +0 -0
  443. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pda.jpg +0 -0
  444. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pda.svg +2 -0
  445. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/phone-fax.svg +2 -0
  446. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/phone.jpg +0 -0
  447. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/phone.svg +2 -0
  448. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/phone_fax.jpg +0 -0
  449. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pix-firewall.svg +2 -0
  450. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pix_firewall.jpg +0 -0
  451. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/platform_icon_drawio.json +483 -0
  452. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/platform_icon_map.json +269 -0
  453. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pmc.jpg +0 -0
  454. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pmc.svg +2 -0
  455. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/printer.jpg +0 -0
  456. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/printer.svg +2 -0
  457. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/programmable-switch.svg +2 -0
  458. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/programmable_switch.jpg +0 -0
  459. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/protocol-translator.svg +2 -0
  460. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/protocol_translator.jpg +0 -0
  461. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pxf.jpg +0 -0
  462. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pxf.svg +2 -0
  463. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/radio-tower.svg +2 -0
  464. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/radio_tower.jpg +0 -0
  465. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ratemux.jpg +0 -0
  466. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ratemux.svg +2 -0
  467. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/relational-database.svg +2 -0
  468. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/relational_database.jpg +0 -0
  469. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/repeater.jpg +0 -0
  470. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/repeater.svg +2 -0
  471. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/rf-modem.svg +2 -0
  472. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/route-switch-processor.svg +2 -0
  473. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/route_switch_processor.jpg +0 -0
  474. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/router-firewall.svg +2 -0
  475. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/router-in-building.svg +2 -0
  476. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/router-with-silicon-switch.svg +2 -0
  477. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/router.jpg +0 -0
  478. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/router.svg +2 -0
  479. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/router_firewall.jpg +0 -0
  480. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/router_with_silicon_switch.jpg +0 -0
  481. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/routerin_building.jpg +0 -0
  482. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/rpsrps.jpg +0 -0
  483. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/rpsrps.svg +2 -0
  484. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/running-man.svg +2 -0
  485. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/running_man.jpg +0 -0
  486. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/safeharbor-icon.svg +2 -0
  487. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/safeharbor_icon.jpg +0 -0
  488. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/sattelite-dish.svg +2 -0
  489. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/sattelite.jpg +0 -0
  490. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/sattelite.svg +2 -0
  491. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/sattelite_dish.jpg +0 -0
  492. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/scanner.jpg +0 -0
  493. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/scanner.svg +2 -0
  494. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/server-switch.svg +2 -0
  495. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/server-with-router.svg +2 -0
  496. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/server_switch.jpg +0 -0
  497. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/server_with_router.jpg +0 -0
  498. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/service-control.svg +2 -0
  499. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/service-module.svg +2 -0
  500. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/service-router.svg +2 -0
  501. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/service_control.jpg +0 -0
  502. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/services.svg +2 -0
  503. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/set-top-box.svg +2 -0
  504. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/simulitlayer_switch.jpg +0 -0
  505. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/simultlayer-switch.svg +2 -0
  506. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/sip-proxy-server.svg +2 -0
  507. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/sip_proxy_werver.jpg +0 -0
  508. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/sitting-woman.svg +2 -0
  509. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/sitting_woman.jpg +0 -0
  510. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/small-business.svg +2 -0
  511. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/small-hub.svg +2 -0
  512. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/small_business.jpg +0 -0
  513. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/small_hub.jpg +0 -0
  514. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/softphone.jpg +0 -0
  515. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/softphone.svg +2 -0
  516. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/softswitch-pgw-mgc.svg +2 -0
  517. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/softswitch_pgw_mgc.jpg +0 -0
  518. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/software-based-server.svg +2 -0
  519. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/software_based_server.jpg +0 -0
  520. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/space-router.svg +2 -0
  521. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/speaker.jpg +0 -0
  522. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/speaker.svg +2 -0
  523. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ssc.jpg +0 -0
  524. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ssc.svg +2 -0
  525. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ssl-terminator.svg +2 -0
  526. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ssl_terminator.jpg +0 -0
  527. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/standard-host.svg +2 -0
  528. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/standard_host.jpg +0 -0
  529. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/standing-man.svg +2 -0
  530. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/standing-woman.svg +2 -0
  531. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/standing_man.jpg +0 -0
  532. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/standing_woman.jpg +0 -0
  533. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/stb.jpg +0 -0
  534. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/stb.svg +2 -0
  535. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/storage-router.svg +2 -0
  536. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/storage_router.jpg +0 -0
  537. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/storage_server.jpg +0 -0
  538. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/storge-server.svg +2 -0
  539. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/stp.jpg +0 -0
  540. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/stp.svg +2 -0
  541. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/streamer.jpg +0 -0
  542. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/streamer.svg +2 -0
  543. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/sun-workstation.svg +2 -0
  544. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/sun_workstation.jpg +0 -0
  545. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/supercomputer.jpg +0 -0
  546. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/supercomputer.svg +2 -0
  547. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/svx.jpg +0 -0
  548. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/svx.svg +2 -0
  549. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/system-controller.svg +2 -0
  550. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/system_controller.jpg +0 -0
  551. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/tablet.jpg +0 -0
  552. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/tablet.svg +2 -0
  553. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/tape-array.svg +2 -0
  554. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/tape_array.jpg +0 -0
  555. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/tdm-router.svg +2 -0
  556. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/tdm_router.jpg +0 -0
  557. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/telecommuter-house-pc.svg +2 -0
  558. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/telecommuter-house.svg +2 -0
  559. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/telecommuter-icon.svg +2 -0
  560. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/telecommuter_house.jpg +0 -0
  561. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/telecommuter_house_pc.jpg +0 -0
  562. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/telecommuter_icon.jpg +0 -0
  563. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/telepresence-3200.svg +2 -0
  564. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/terminal.jpg +0 -0
  565. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/terminal.svg +2 -0
  566. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/token.jpg +0 -0
  567. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/token.svg +2 -0
  568. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/tp-mcu.svg +2 -0
  569. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/transpath.jpg +0 -0
  570. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/transpath.svg +2 -0
  571. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/truck.jpg +0 -0
  572. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/truck.svg +2 -0
  573. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/turret.jpg +0 -0
  574. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/turret.svg +2 -0
  575. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/tv.jpg +0 -0
  576. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/tv.svg +2 -0
  577. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ubr910.jpg +0 -0
  578. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ubr910.svg +2 -0
  579. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/umg-series.svg +2 -0
  580. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/umg_series.jpg +0 -0
  581. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/unity-server.svg +2 -0
  582. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/unity_server.jpg +0 -0
  583. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/universal-gateway.svg +2 -0
  584. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/universal_gateway.jpg +0 -0
  585. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/university.jpg +0 -0
  586. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/university.svg +2 -0
  587. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/upc.jpg +0 -0
  588. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/upc.svg +2 -0
  589. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ups.jpg +0 -0
  590. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ups.svg +2 -0
  591. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/vault.jpg +0 -0
  592. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/vault.svg +2 -0
  593. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/video-camera.svg +2 -0
  594. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/video_camera.jpg +0 -0
  595. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/vip.jpg +0 -0
  596. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/vip.svg +2 -0
  597. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/virtual-layer-switch.svg +2 -0
  598. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/virtual-switch-controller-vsc3.svg +2 -0
  599. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/virtual_layer_switch.jpg +0 -0
  600. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/virtual_switch_controller_(vsc3000).jpg +0 -0
  601. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/voice-atm-switch.svg +2 -0
  602. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/voice-commserver.svg +2 -0
  603. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/voice-router.svg +2 -0
  604. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/voice-switch.svg +2 -0
  605. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/voice_atm_switch.jpg +0 -0
  606. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/voice_commserver.jpg +0 -0
  607. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/voice_router.jpg +0 -0
  608. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/voice_switch.jpg +0 -0
  609. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/vpn-concentrator.svg +2 -0
  610. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/vpn-gateway.svg +2 -0
  611. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/vpn_concentrator.jpg +0 -0
  612. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/vpn_gateway.jpg +0 -0
  613. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/vss.svg +2 -0
  614. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wae.jpg +0 -0
  615. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wae.svg +2 -0
  616. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wavelength-router.svg +2 -0
  617. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wavelength_router.jpg +0 -0
  618. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/web-browser.svg +2 -0
  619. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/web-cluster.svg +2 -0
  620. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/web_browser.jpg +0 -0
  621. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/web_cluster.jpg +0 -0
  622. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wi-fi-tag.svg +2 -0
  623. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wi-fi_tag.jpg +0 -0
  624. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wireless-link.svg +2 -0
  625. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wireless-location-appliance.svg +2 -0
  626. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wireless-router.svg +2 -0
  627. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wireless-transport.svg +2 -0
  628. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wireless.jpg +0 -0
  629. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wireless.svg +2 -0
  630. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wireless_bridge.jpg +0 -0
  631. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wireless_location_appliance.jpg +0 -0
  632. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wireless_router.jpg +0 -0
  633. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wireless_transport.jpg +0 -0
  634. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wirelss-bridge.svg +2 -0
  635. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wism.jpg +0 -0
  636. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wism.svg +2 -0
  637. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wlan-controller.svg +2 -0
  638. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wlan_controller.jpg +0 -0
  639. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/workgroup-director.svg +2 -0
  640. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/workgroup-switch.svg +2 -0
  641. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/workgroup_director.jpg +0 -0
  642. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/workgroup_switch.jpg +0 -0
  643. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/workstation.jpg +0 -0
  644. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/workstation.svg +2 -0
  645. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/www-server.svg +2 -0
  646. secure_cartography-2.5.0/sc2/ui/assets/icons_lib/www_server.jpg +0 -0
  647. secure_cartography-2.5.0/sc2/ui/help_dialog.py +949 -0
  648. secure_cartography-2.5.0/sc2/ui/login.py +852 -0
  649. secure_cartography-2.5.0/sc2/ui/main_window.py +757 -0
  650. secure_cartography-2.5.0/sc2/ui/security_integration.py +261 -0
  651. secure_cartography-2.5.0/sc2/ui/settings.py +226 -0
  652. secure_cartography-2.5.0/sc2/ui/themes.py +2190 -0
  653. secure_cartography-2.5.0/sc2/ui/widgets/__init__.py +62 -0
  654. secure_cartography-2.5.0/sc2/ui/widgets/connection_panel.py +265 -0
  655. secure_cartography-2.5.0/sc2/ui/widgets/credential_dialog.py +715 -0
  656. secure_cartography-2.5.0/sc2/ui/widgets/credentials_panel.py +700 -0
  657. secure_cartography-2.5.0/sc2/ui/widgets/device_poll_dialog.py +806 -0
  658. secure_cartography-2.5.0/sc2/ui/widgets/discovery_log.py +267 -0
  659. secure_cartography-2.5.0/sc2/ui/widgets/discovery_options.py +382 -0
  660. secure_cartography-2.5.0/sc2/ui/widgets/local_snmp_ops.py +867 -0
  661. secure_cartography-2.5.0/sc2/ui/widgets/local_snmp_service.py +930 -0
  662. secure_cartography-2.5.0/sc2/ui/widgets/map_viewer_dialog.py +1856 -0
  663. secure_cartography-2.5.0/sc2/ui/widgets/node_edit_dialog.py +271 -0
  664. secure_cartography-2.5.0/sc2/ui/widgets/output_panel.py +268 -0
  665. secure_cartography-2.5.0/sc2/ui/widgets/panel.py +242 -0
  666. secure_cartography-2.5.0/sc2/ui/widgets/platform_icons.py +509 -0
  667. secure_cartography-2.5.0/sc2/ui/widgets/poll_worker.py +681 -0
  668. secure_cartography-2.5.0/sc2/ui/widgets/progress_panel.py +260 -0
  669. secure_cartography-2.5.0/sc2/ui/widgets/security_widget.py +2207 -0
  670. secure_cartography-2.5.0/sc2/ui/widgets/stat_box.py +271 -0
  671. secure_cartography-2.5.0/sc2/ui/widgets/tag_input.py +352 -0
  672. secure_cartography-2.5.0/sc2/ui/widgets/toggle_switch.py +289 -0
  673. secure_cartography-2.5.0/sc2/ui/widgets/topology_preview_panel.py +484 -0
  674. secure_cartography-2.5.0/sc2/ui/widgets/topology_viewer.html +1113 -0
  675. secure_cartography-2.5.0/sc2/ui/widgets/topology_viewer.py +688 -0
  676. secure_cartography-2.5.0/secure_cartography.egg-info/PKG-INFO +840 -0
  677. secure_cartography-2.5.0/secure_cartography.egg-info/SOURCES.txt +690 -0
  678. secure_cartography-2.5.0/secure_cartography.egg-info/dependency_links.txt +1 -0
  679. secure_cartography-2.5.0/secure_cartography.egg-info/entry_points.txt +7 -0
  680. secure_cartography-2.5.0/secure_cartography.egg-info/requires.txt +21 -0
  681. secure_cartography-2.5.0/secure_cartography.egg-info/top_level.txt +6 -0
  682. secure_cartography-2.5.0/setup.cfg +4 -0
  683. secure_cartography-2.5.0/setup.py +138 -0
  684. secure_cartography-2.5.0/snmp_proxy/__init__.py +0 -0
  685. secure_cartography-2.5.0/snmp_proxy/src/snmp_proxy/__init__.py +23 -0
  686. secure_cartography-2.5.0/snmp_proxy/src/snmp_proxy/__main__.py +202 -0
  687. secure_cartography-2.5.0/snmp_proxy/src/snmp_proxy/jobs.py +468 -0
  688. secure_cartography-2.5.0/snmp_proxy/src/snmp_proxy/models.py +131 -0
  689. secure_cartography-2.5.0/snmp_proxy/src/snmp_proxy/server.py +276 -0
  690. secure_cartography-2.5.0/snmp_proxy/src/snmp_proxy/snmp_ops.py +329 -0
  691. secure_cartography-2.5.0/snmp_proxy/src/snmp_proxy/test_api.py +298 -0
  692. secure_cartography-2.5.0/snmp_proxy/src/snmp_proxy/test_pysnmp.py +223 -0
@@ -0,0 +1,840 @@
1
+ Metadata-Version: 2.4
2
+ Name: secure-cartography
3
+ Version: 2.5.0
4
+ Summary: Network Discovery, Topology Mapping, and Vulnerability Assessment
5
+ Home-page: https://github.com/scottpeterman/secure_cartography
6
+ Author: Scott Peterman
7
+ Author-email: Scott Peterman <scottpeterman@gmail.com>
8
+ License: GPL-3.0
9
+ Project-URL: Homepage, https://github.com/scottpeterman/secure_cartography
10
+ Project-URL: Documentation, https://github.com/scottpeterman/secure_cartography#readme
11
+ Project-URL: Repository, https://github.com/scottpeterman/secure_cartography
12
+ Project-URL: Issues, https://github.com/scottpeterman/secure_cartography/issues
13
+ Project-URL: Changelog, https://github.com/scottpeterman/secure_cartography/blob/main/RELEASE_NOTES_2_5.md
14
+ Keywords: network,discovery,topology,snmp,ssh,cdp,lldp,cisco,arista,juniper,network-automation,network-mapping,vulnerability,cve
15
+ Classifier: Development Status :: 4 - Beta
16
+ Classifier: Environment :: X11 Applications :: Qt
17
+ Classifier: Environment :: Win32 (MS Windows)
18
+ Classifier: Environment :: MacOS X
19
+ Classifier: Intended Audience :: System Administrators
20
+ Classifier: Intended Audience :: Information Technology
21
+ Classifier: Intended Audience :: Telecommunications Industry
22
+ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
23
+ Classifier: Operating System :: OS Independent
24
+ Classifier: Programming Language :: Python :: 3
25
+ Classifier: Programming Language :: Python :: 3.10
26
+ Classifier: Programming Language :: Python :: 3.11
27
+ Classifier: Programming Language :: Python :: 3.12
28
+ Classifier: Programming Language :: Python :: 3.13
29
+ Classifier: Topic :: System :: Networking
30
+ Classifier: Topic :: System :: Networking :: Monitoring
31
+ Classifier: Topic :: System :: Systems Administration
32
+ Requires-Python: >=3.9
33
+ Description-Content-Type: text/markdown
34
+ Requires-Dist: pysnmp>=7.1
35
+ Requires-Dist: paramiko>=3.0
36
+ Requires-Dist: textfsm>=1.1
37
+ Requires-Dist: cryptography>=42.0
38
+ Requires-Dist: PyQt6>=6.6
39
+ Requires-Dist: PyQt6-WebEngine>=6.6
40
+ Requires-Dist: fastapi>=0.100
41
+ Requires-Dist: uvicorn>=0.27
42
+ Requires-Dist: pydantic>=2.0
43
+ Requires-Dist: aiofiles>=23.0
44
+ Requires-Dist: PyYAML>=6.0
45
+ Requires-Dist: click>=8.0
46
+ Requires-Dist: requests>=2.30
47
+ Requires-Dist: openpyxl>=3.1
48
+ Requires-Dist: python-dotenv>=1.0
49
+ Provides-Extra: dev
50
+ Requires-Dist: pytest>=7.0; extra == "dev"
51
+ Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
52
+ Requires-Dist: black>=23.0; extra == "dev"
53
+ Requires-Dist: ruff>=0.1; extra == "dev"
54
+ Dynamic: author
55
+ Dynamic: home-page
56
+ Dynamic: requires-python
57
+
58
+ # Secure Cartography
59
+
60
+ **Network Discovery, Topology Mapping, and Vulnerability Assessment**
61
+
62
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
63
+ [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
64
+ [![PyQt6](https://img.shields.io/badge/GUI-PyQt6-green.svg)](https://www.riverbankcomputing.com/software/pyqt/)
65
+ [![PyPI](https://img.shields.io/pypi/v/secure-cartography)](https://pypi.org/project/secure-cartography/)
66
+
67
+ Secure Cartography crawls your network via SNMP and SSH, maps the topology from CDP/LLDP neighbors, and scans discovered platforms against the NIST vulnerability database — all from a single desktop application with zero server infrastructure. Built by a network engineer, for network engineers.
68
+
69
+ <p align="center">
70
+ <img src="https://raw.githubusercontent.com/scottpeterman/secure_cartography/refs/heads/main/screenshots/slides2.gif" alt="Secure Cartography" width="800">
71
+ </p>
72
+
73
+ ---
74
+
75
+ ## What It Does
76
+
77
+ **Discover** → **Visualize** → **Arrange** → **Export** → **Scan**
78
+
79
+ 1. **Discover** your network from a seed IP using SNMP (v2c/v3) with SSH fallback — CDP and LLDP neighbor crawling across Cisco, Arista, Juniper, and more
80
+ 2. **Visualize** the topology in an interactive Cytoscape.js viewer with vendor coloring and platform icons
81
+ 3. **Arrange** nodes interactively and save your layout — positions persist across sessions
82
+ 4. **Export** to Draw.io (position-matched to your viewer layout), yEd GraphML, PNG, CSV, or JSON
83
+ 5. **Scan** discovered platforms against the NIST NVD for known CVEs with severity ratings
84
+
85
+ No database. No web server. No Docker. Just `pip install secure-cartography` and go.
86
+
87
+ ---
88
+
89
+ ## What's New in v2.5
90
+
91
+ | Feature | Description |
92
+ |---------|-------------|
93
+ | **Layout persistence** | Save/restore node positions in `.layout.json` sidecar files — arrangements survive across sessions |
94
+ | **Position-matched Draw.io export** | Draw.io output mirrors your interactive viewer layout instead of computing its own |
95
+ | **Focus maps** | Select a node, open a 1-hop neighborhood view for troubleshooting adjacencies |
96
+ | **NX-OS platform detection** | tfsm_fire parses `show version` into clean platform strings like "Cisco Nexus9000 C9504 9.3(11)" |
97
+ | **NX-OS CVE scanning** | Security Analysis now maps NX-OS, IOS-XE short format, and IOS platforms to NVD CPE queries |
98
+ | **LLDP port resolution** | Cascading fallback resolves garbage port IDs from Juniper, Linux, and Arista |
99
+ | **sysName dedup** | Multi-homed devices discovered via different IPs no longer produce duplicate nodes |
100
+ | **Ghost node filter** | NX-OS command artifacts eliminated from topology |
101
+ | **Hosts file support** | `--hosts-file` enables discovery in environments without DNS |
102
+
103
+ See [RELEASE_NOTES_2_5.md](RELEASE_NOTES_2_5.md) for full details.
104
+
105
+ ---
106
+
107
+ ## Features
108
+
109
+ ### Discovery Engine
110
+ - **SNMP-first discovery** with automatic SSH fallback
111
+ - **CDP and LLDP** neighbor detection across vendors
112
+ - **Platform detection via tfsm_fire** — structured parsing of `show version` output instead of regex on raw text
113
+ - **Two-pass LLDP resolution** — correctly handles lldpLocPortNum vs ifIndex
114
+ - **LLDP remote port resolution** — cascading fallback for Juniper/Linux garbage port IDs
115
+ - **Bidirectional link validation** — only confirmed connections appear in topology
116
+ - **Concurrent crawling** — discover 20+ devices simultaneously
117
+ - **Post-discovery sysName dedup** — multi-homed devices produce one node, not duplicates
118
+ - **Ghost node filtering** — NX-OS command artifacts eliminated from topology
119
+ - **Depth-limited recursion** — control how far the crawler goes
120
+ - **Exclusion patterns** — skip devices by hostname, sys_name, or sysDescr
121
+ - **No-DNS mode** — use IPs directly from neighbor tables (home lab friendly)
122
+ - **Hosts file resolution** — `--hosts-file` for environments without DNS
123
+
124
+ ### Topology Viewer & Map Management
125
+ - **Embedded Cytoscape.js viewer** — interactive network visualization with pan, zoom, drag
126
+ - **Vendor-specific styling** — Cisco (blue), Arista (green), Juniper (orange) with platform icons
127
+ - **Layout persistence** — save node positions to `.layout.json` sidecar files, auto-restored on reopen
128
+ - **Focus maps** — select nodes and open a 1-hop neighborhood viewer for troubleshooting
129
+ - **Nine layout algorithms** — Dagre, fCoSE, Cola, breadthfirst, concentric, and more
130
+ - **Connected-only filtering** — hide orphan and leaf nodes for infrastructure-only views
131
+ - **Undiscovered peer nodes** — referenced but unreachable devices shown with dashed borders
132
+ - **Theme-aware** — visualization adapts to Cyber/Dark/Light themes
133
+ - **Node editing** — double-click to update device details, poll via SNMP
134
+
135
+ ### Draw.io Export
136
+ One-click export to Draw.io format for professional network documentation:
137
+
138
+ - **Position-matched layout** — Draw.io output mirrors your interactive viewer arrangement
139
+ - **Cisco mxgraph stencils** — native Draw.io shapes for switches, routers, firewalls
140
+ - **Vendor coloring** — automatic fill colors (Cisco blue, Juniper orange, Arista green)
141
+ - **Interface labels** — port-to-port connections preserved on edges
142
+ - **Hierarchical fallback** — tree layout when no viewer positions are available
143
+ - **Universal compatibility** — open in Draw.io desktop, web (diagrams.net), or VS Code extension
144
+
145
+ <p align="center">
146
+ <img src="https://raw.githubusercontent.com/scottpeterman/secure_cartography/refs/heads/main/screenshots/drawio_multivendor.png" alt="Draw.io Export - Multi-vendor topology" width="800">
147
+ </p>
148
+
149
+ ### Additional Export Formats
150
+ | Format | Use Case |
151
+ |--------|----------|
152
+ | **yEd (GraphML)** | Professional diagrams with automatic layouts and port labels |
153
+ | **PNG** | Quick image export for reports and presentations |
154
+ | **CSV** | Device inventory for spreadsheets and vulnerability analysis |
155
+ | **JSON** | Raw topology data for custom processing |
156
+
157
+ ### Security Analysis (CVE Vulnerability Scanning)
158
+ - **Platform-to-CPE mapping** — parses Cisco IOS/IOS-XE/NX-OS, Arista EOS, Juniper JUNOS, Palo Alto, Fortinet
159
+ - **NIST NVD integration** — queries National Vulnerability Database for known CVEs
160
+ - **Severity color-coding** — CRITICAL/HIGH/MEDIUM/LOW at a glance
161
+ - **Local CVE cache** — SQLite cache avoids repeated API calls
162
+ - **Export reports** — CSV export with affected devices per CVE
163
+ - **Device-centric view** — "Export by Device" shows CVE counts per device for remediation planning
164
+
165
+ <p align="center">
166
+ <img src="https://raw.githubusercontent.com/scottpeterman/secure_cartography/refs/heads/main/screenshots/sec_vuln.png" alt="Security Analysis - CVE Vulnerability Scanning" width="800">
167
+ </p>
168
+
169
+ ### Credential Management
170
+ - **Encrypted SQLite vault** — AES-256-GCM encryption at rest
171
+ - **Multiple credential types** — SSH (password + key), SNMPv2c, SNMPv3
172
+ - **Priority ordering** — try credentials in sequence until one works
173
+ - **Credential discovery** — auto-detect which credentials work on which devices
174
+
175
+ ### Interactive Device Polling
176
+ Poll individual devices directly from the Map Viewer for on-demand identification and inventory — no full discovery required.
177
+
178
+ - **SNMP fingerprinting** — identifies vendor, model, OS version via Rapid7 Recog patterns
179
+ - **Interface inventory** — collects ifTable with MAC addresses and OUI vendor lookup
180
+ - **ARP table collection** — neighbor IP/MAC mappings with vendor identification
181
+ - **Two operating modes**:
182
+ - **Local mode** — direct SNMP using pysnmp-lextudio (works on Windows/Linux/Mac)
183
+ - **Proxy mode** — for targets only reachable from a jump host ([SNMP Proxy](snmp_proxy/README.md))
184
+ - **Export to Excel** — multi-sheet workbook with Summary, Interfaces, and ARP data
185
+
186
+ ### Themed GUI
187
+ - **Three themes** — Cyber (cyan), Dark (gold), Light (blue)
188
+ - **Real-time progress** — live counters, depth tracking, log output
189
+ - **Responsive design** — UI remains interactive during discovery
190
+ - **Click-to-inspect** — node details (hostname, IP, platform) on selection
191
+
192
+ ### Supported Platforms
193
+ | Vendor | SNMP | SSH | CVE Mapping |
194
+ |--------|------|-----|-------------|
195
+ | Cisco IOS/IOS-XE | ✓ | ✓ | ✓ |
196
+ | Cisco NX-OS | ✓ | ✓ | ✓ |
197
+ | Arista EOS | ✓ | ✓ | ✓ |
198
+ | Juniper JUNOS | ✓ | ✓ | ✓ |
199
+ | Palo Alto PAN-OS | — | — | ✓ |
200
+ | Fortinet FortiOS | — | — | ✓ |
201
+
202
+ Others will appear via SNMP sysDescr fingerprinting; vendor-specific testing has focused on the above.
203
+
204
+ ---
205
+
206
+ ## Screenshots
207
+
208
+ <table>
209
+ <tr>
210
+ <td><img src="https://raw.githubusercontent.com/scottpeterman/secure_cartography/refs/heads/main/screenshots/main_cyber.png" alt="Cyber Theme" width="280"></td>
211
+ <td><img src="https://raw.githubusercontent.com/scottpeterman/secure_cartography/refs/heads/main/screenshots/main_dark.png" alt="Dark Theme" width="280"></td>
212
+ <td><img src="https://raw.githubusercontent.com/scottpeterman/secure_cartography/refs/heads/main/screenshots/main_light.png" alt="Light Theme" width="280"></td>
213
+ </tr>
214
+ <tr>
215
+ <td align="center"><b>Cyber</b> - Teal accents</td>
216
+ <td align="center"><b>Dark</b> - Gold accents</td>
217
+ <td align="center"><b>Light</b> - Blue accents</td>
218
+ </tr>
219
+ </table>
220
+
221
+ <table>
222
+ <tr>
223
+ <td><img src="https://raw.githubusercontent.com/scottpeterman/secure_cartography/refs/heads/main/screenshots/full_run_preview_cyber.png" alt="Topology - Cyber" width="280"></td>
224
+ <td><img src="https://raw.githubusercontent.com/scottpeterman/secure_cartography/refs/heads/main/screenshots/run_complete_dark.png" alt="Topology - Dark" width="280"></td>
225
+ <td><img src="https://raw.githubusercontent.com/scottpeterman/secure_cartography/refs/heads/main/screenshots/full_run_preview_light.png" alt="Topology - Light" width="280"></td>
226
+ </tr>
227
+ <tr>
228
+ <td align="center">Topology Preview - Cyber</td>
229
+ <td align="center">Topology Preview - Dark</td>
230
+ <td align="center">Topology Preview - Light</td>
231
+ </tr>
232
+ </table>
233
+
234
+ <table>
235
+ <tr>
236
+ <td><img src="https://raw.githubusercontent.com/scottpeterman/secure_cartography/refs/heads/main/screenshots/login_cyan.png" alt="Login - Cyber" width="280"></td>
237
+ <td><img src="https://raw.githubusercontent.com/scottpeterman/secure_cartography/refs/heads/main/screenshots/login_amber.png" alt="Login - Dark" width="280"></td>
238
+ <td><img src="https://raw.githubusercontent.com/scottpeterman/secure_cartography/refs/heads/main/screenshots/login_light.png" alt="Login - Light" width="280"></td>
239
+ </tr>
240
+ <tr>
241
+ <td align="center">Login - Cyber</td>
242
+ <td align="center">Login - Dark</td>
243
+ <td align="center">Login - Light</td>
244
+ </tr>
245
+ </table>
246
+
247
+ ---
248
+ ## Installation
249
+
250
+ ### Prerequisites
251
+ - Python 3.10 or higher
252
+ - pip
253
+
254
+ ### From Source
255
+ ```bash
256
+ git clone https://github.com/scottpeterman/secure_cartography.git
257
+ cd secure_cartography
258
+ pip install -e .
259
+ ```
260
+
261
+ ### Dependencies
262
+ ```bash
263
+ # Core
264
+ pip install pysnmp-lextudio paramiko cryptography textfsm aiofiles
265
+
266
+ # GUI
267
+ pip install PyQt6 PyQt6-WebEngine
268
+ ```
269
+
270
+ ---
271
+
272
+ ## Quick Start
273
+
274
+ ### 1. Initialize the Credential Vault
275
+ ```bash
276
+ # Create vault and set master password
277
+ python -m sc2.scng.creds init
278
+
279
+ # Add SNMP credential
280
+ python -m sc2.scng.creds add snmpv2c snmp-readonly --community public
281
+
282
+ # Add SSH credential
283
+ python -m sc2.scng.creds add ssh network-admin --username admin
284
+
285
+ # List credentials
286
+ python -m sc2.scng.creds list
287
+ ```
288
+
289
+ ### 2. Test Connectivity
290
+ ```bash
291
+ # Quick SNMP test (no vault needed)
292
+ python -m sc2.scng.discovery test 192.168.1.1 --community public
293
+
294
+ # Test with vault credentials
295
+ python -m sc2.scng.discovery device 192.168.1.1
296
+ ```
297
+
298
+ ### 3. Run Discovery
299
+ ```bash
300
+ # Basic crawl
301
+ python -m sc2.scng.discovery crawl 192.168.1.1 -d 3
302
+
303
+ # With options
304
+ python -m sc2.scng.discovery crawl 192.168.1.1 10.0.0.1 \
305
+ -d 5 \
306
+ --domain corp.example.com \
307
+ --exclude "phone,wireless,linux" \
308
+ --output ./network_maps
309
+ ```
310
+
311
+ ### 4. Launch GUI
312
+ ```bash
313
+ python -m sc2.ui
314
+ ```
315
+
316
+ ### 5. Security Analysis
317
+ After running discovery, click the **🔐 SECURITY** button in the header bar to open the Security Analysis window:
318
+
319
+ 1. **Load CSV** - Import the `devices.csv` from your discovery output
320
+ 2. **Review Mappings** - Verify auto-detected platform → CPE mappings
321
+ 3. **Sync Selected** - Query NIST NVD for CVEs (optional: add free API key for faster rate limits)
322
+ 4. **Analyze Results** - Review CVEs sorted by severity
323
+ 5. **Export Report** - Generate CSV with CVEs and affected devices
324
+
325
+ ---
326
+
327
+ ## Security Analysis Workflow
328
+
329
+ The Security Analysis module transforms your network inventory into an actionable vulnerability report.
330
+
331
+ ### Platform Recognition
332
+ Secure Cartography automatically parses platform strings into CPE (Common Platform Enumeration) format:
333
+
334
+ ```
335
+ "Cisco IOS IOS 15.2(4.0.55)E" → cpe:2.3:o:cisco:ios:15.2(4.0.55)e:*:*:*:*:*:*:*
336
+ "Arista vEOS-lab EOS 4.33.1F" → cpe:2.3:o:arista:eos:4.33.1f:*:*:*:*:*:*:*
337
+ ```
338
+
339
+ ### CVE Lookup
340
+ Queries the NIST National Vulnerability Database for known vulnerabilities:
341
+ - Results cached locally in `~/.scng/cve_cache.db`
342
+ - Free NVD API key increases rate limits (get one at [nvd.nist.gov](https://nvd.nist.gov/developers/request-an-api-key))
343
+
344
+ ### Export Options
345
+ Two export formats for different use cases:
346
+
347
+ | Export | Format | Use Case |
348
+ |--------|--------|----------|
349
+ | **Export Report** | One row per CVE | Security team review, compliance audits |
350
+ | **Export by Device** | One row per device | Remediation planning, patch prioritization |
351
+
352
+ ### Jump Host Workflow
353
+ When your desktop doesn't have SNMP access:
354
+
355
+ 1. SSH to a jump host with network access
356
+ 2. Run discovery via CLI: `python -m sc2.scng.discovery crawl ...`
357
+ 3. Copy `devices.csv` back to your desktop
358
+ 4. Open in GUI → Security Analysis → Load CSV → Sync
359
+
360
+ ---
361
+
362
+ ## Architecture
363
+
364
+ ```
365
+ sc2/
366
+ ├── scng/ # Discovery engine
367
+ │ ├── creds/ # Credential vault
368
+ │ │ ├── vault.py # Encrypted SQLite storage
369
+ │ │ ├── models.py # SSH, SNMPv2c, SNMPv3 dataclasses
370
+ │ │ ├── resolver.py # Credential testing & discovery
371
+ │ │ └── cli.py # Credential management CLI
372
+ │ │
373
+ │ ├── discovery/ # Discovery engine
374
+ │ │ ├── engine.py # Async orchestration, crawl logic
375
+ │ │ ├── models.py # Device, Neighbor, Interface
376
+ │ │ ├── cli.py # Discovery CLI
377
+ │ │ │
378
+ │ │ ├── snmp/ # SNMP collection
379
+ │ │ │ ├── walker.py # Async GETBULK table walks
380
+ │ │ │ └── collectors/ # system, interfaces, lldp, cdp, arp
381
+ │ │ │
382
+ │ │ └── ssh/ # SSH fallback
383
+ │ │ ├── client.py # Paramiko wrapper
384
+ │ │ ├── collector.py # Vendor detection, command execution
385
+ │ │ └── parsers.py # TextFSM integration
386
+ │ │
387
+ │ └── utils/
388
+ │ └── tfsm_fire.py # TextFSM auto-template selection
389
+
390
+ ├── export/ # Export modules
391
+ │ ├── graphml_exporter.py # yEd GraphML export
392
+ │ └── drawio_exporter.py # Draw.io export with vendor styling
393
+
394
+ └── ui/ # PyQt6 GUI
395
+ ├── themes.py # Theme system (Cyber/Dark/Light)
396
+ ├── login.py # Vault unlock dialog
397
+ ├── main_window.py # Main application window
398
+ ├── help_dialog.py # Help system (GUI/CLI/Security docs)
399
+
400
+ ├── assets/
401
+ │ └── icons_lib/
402
+ │ └── platform_icon_drawio.json # Draw.io icon mappings
403
+
404
+ └── widgets/ # Custom themed widgets
405
+ ├── panel.py # Base panel with title bar
406
+ ├── connection_panel.py # Seeds, domains, excludes
407
+ ├── credentials_panel.py # Credential management UI
408
+ ├── discovery_options.py # Depth, concurrency, toggles
409
+ ├── output_panel.py # Output directory config
410
+ ├── progress_panel.py # Stats, progress bar
411
+ ├── discovery_log.py # Styled log output
412
+ ├── discovery_controller.py # Discovery↔UI bridge with throttled events
413
+ ├── topology_preview_panel.py # Preview container (singleton)
414
+ ├── topology_viewer.py # QWebEngineView + Cytoscape.js bridge
415
+ ├── topology_viewer.html # Cytoscape.js visualization
416
+ ├── map_viewer_dialog.py # Full-screen topology viewer
417
+ ├── security_widget.py # CVE vulnerability analysis
418
+ ├── tag_input.py # Tag/chip input widget
419
+ ├── toggle_switch.py # iOS-style toggle
420
+ └── stat_box.py # Counter display boxes
421
+ ```
422
+
423
+ ---
424
+
425
+ ## Topology Viewer
426
+
427
+ The Map Viewer is the centerpiece of the documentation workflow. Arrange your topology interactively, save the layout, and export to Draw.io — the output mirrors what you see on screen.
428
+
429
+ ```
430
+ Discovery → map.json → Interactive Viewer → Save Layout → Draw.io Export (position-matched)
431
+ → Focus Map (1-hop neighborhood)
432
+ → PNG / CSV / GraphML / JSON
433
+ ```
434
+
435
+ See the [Features](#topology-viewer--map-management) section above for full details.
436
+
437
+ ---
438
+
439
+ ## CLI Reference
440
+
441
+ Secure Cartography provides two CLI modules that can be used independently of the GUI:
442
+
443
+ - `sc2.scng.creds` - Credential vault management
444
+ - `sc2.scng.discovery` - Network discovery engine
445
+
446
+ Both CLIs support `--help` on all commands and subcommands.
447
+
448
+ ---
449
+
450
+ ### Credential Management (`sc2.scng.creds`)
451
+
452
+ ```
453
+ usage: scng-creds [-h] [--vault-path VAULT_PATH] [--password PASSWORD]
454
+ {init,unlock,add,list,show,remove,set-default,test,discover,change-password,deps} ...
455
+ ```
456
+
457
+ #### Global Options
458
+
459
+ | Option | Description |
460
+ |--------|-------------|
461
+ | `-v, --vault-path` | Path to vault database (default: `~/.scng/credentials.db`) |
462
+ | `-p, --password` | Vault password (or set `SCNG_VAULT_PASSWORD` env var) |
463
+
464
+ #### Commands
465
+
466
+ ##### `init` - Initialize a new vault
467
+ ```bash
468
+ python -m sc2.scng.creds init
469
+ python -m sc2.scng.creds init --vault-path /path/to/custom.db
470
+ ```
471
+
472
+ ##### `add` - Add credentials
473
+ ```bash
474
+ # SSH with password (prompts for password)
475
+ python -m sc2.scng.creds add ssh admin-cred --username admin --password
476
+
477
+ # SSH with key file
478
+ python -m sc2.scng.creds add ssh key-cred --username automation --key-file ~/.ssh/id_rsa
479
+
480
+ # SNMPv2c
481
+ python -m sc2.scng.creds add snmpv2c readonly --community public
482
+
483
+ # SNMPv3 (authPriv)
484
+ python -m sc2.scng.creds add snmpv3 snmpv3-cred \
485
+ --username snmpuser \
486
+ --auth-protocol sha256 \
487
+ --auth-password authpass123 \
488
+ --priv-protocol aes128 \
489
+ --priv-password privpass123
490
+ ```
491
+
492
+ ##### `list` - List all credentials
493
+ ```bash
494
+ python -m sc2.scng.creds list
495
+ ```
496
+ Output shows credential name, type, priority, and default status.
497
+
498
+ ##### `show` - Show credential details
499
+ ```bash
500
+ python -m sc2.scng.creds show admin-cred
501
+ python -m sc2.scng.creds show admin-cred --reveal # Show passwords/communities
502
+ ```
503
+
504
+ ##### `remove` - Delete a credential
505
+ ```bash
506
+ python -m sc2.scng.creds remove old-credential
507
+ ```
508
+
509
+ ##### `set-default` - Set credential as default for its type
510
+ ```bash
511
+ python -m sc2.scng.creds set-default admin-cred
512
+ ```
513
+
514
+ ##### `test` - Test credential against a host
515
+ ```bash
516
+ python -m sc2.scng.creds test admin-cred 192.168.1.1
517
+ python -m sc2.scng.creds test readonly 10.0.0.1
518
+ ```
519
+
520
+ ##### `discover` - Find which credentials work on a host
521
+ ```bash
522
+ python -m sc2.scng.creds discover 192.168.1.1
523
+ ```
524
+ Tests all credentials and reports which ones succeed.
525
+
526
+ ##### `change-password` - Change vault master password
527
+ ```bash
528
+ python -m sc2.scng.creds change-password
529
+ ```
530
+
531
+ ##### `deps` - Check required dependencies
532
+ ```bash
533
+ python -m sc2.scng.creds deps
534
+ ```
535
+
536
+ ---
537
+
538
+ ### Network Discovery (`sc2.scng.discovery`)
539
+
540
+ ```
541
+ usage: scng.discovery [-h] {test,device,crawl} ...
542
+ ```
543
+
544
+ #### Commands
545
+
546
+ ##### `test` - Quick SNMP connectivity test (no vault required)
547
+ ```bash
548
+ python -m sc2.scng.discovery test 192.168.1.1 --community public
549
+ python -m sc2.scng.discovery test 192.168.1.1 --community public --verbose
550
+ ```
551
+
552
+ ##### `device` - Discover a single device
553
+ ```bash
554
+ python -m sc2.scng.discovery device 192.168.1.1
555
+ python -m sc2.scng.discovery device core-switch.example.com --output ./results
556
+ ```
557
+
558
+ ##### `crawl` - Recursive network discovery
559
+ ```
560
+ usage: scng.discovery crawl [-h] [-d DEPTH] [--domain DOMAINS] [--exclude EXCLUDE_PATTERNS]
561
+ [-o OUTPUT] [-v] [--no-dns] [-c CONCURRENCY] [-t TIMEOUT]
562
+ [--no-color] [--timestamps] [--json-events]
563
+ seeds [seeds ...]
564
+ ```
565
+
566
+ | Option | Description |
567
+ |--------|-------------|
568
+ | `seeds` | One or more seed IP addresses or hostnames |
569
+ | `-d, --depth` | Maximum discovery depth (default: 3) |
570
+ | `--domain` | Domain suffix for hostname resolution (repeatable) |
571
+ | `--exclude` | Exclusion patterns for devices to skip (repeatable, comma-separated) |
572
+ | `-o, --output` | Output directory for results |
573
+ | `-v, --verbose` | Enable debug output |
574
+ | `--no-dns` | Disable DNS lookups; use IPs from LLDP/CDP directly |
575
+ | `-c, --concurrency` | Maximum parallel discoveries (default: 20) |
576
+ | `-t, --timeout` | SNMP timeout in seconds (default: 5) |
577
+ | `--no-color` | Disable colored terminal output |
578
+ | `--timestamps` | Show timestamps in log output |
579
+ | `--json-events` | Output events as JSON lines (for GUI/automation integration) |
580
+
581
+ #### Crawl Examples
582
+
583
+ ```bash
584
+ # Basic crawl from single seed
585
+ python -m sc2.scng.discovery crawl 192.168.1.1
586
+
587
+ # Multiple seeds with depth limit
588
+ python -m sc2.scng.discovery crawl 10.1.1.1 10.2.1.1 --depth 5
589
+
590
+ # With domain suffix for DNS resolution
591
+ python -m sc2.scng.discovery crawl core-sw01 --domain corp.example.com --domain example.com
592
+
593
+ # Exclude devices by pattern (matches hostname, sys_name, or sysDescr)
594
+ python -m sc2.scng.discovery crawl 192.168.1.1 --exclude "linux,vmware,phone"
595
+
596
+ # Multiple exclude flags also work
597
+ python -m sc2.scng.discovery crawl 192.168.1.1 \
598
+ --exclude "linux" \
599
+ --exclude "phone" \
600
+ --exclude "wireless"
601
+
602
+ # Home lab mode (no DNS, faster)
603
+ python -m sc2.scng.discovery crawl 192.168.1.1 --no-dns
604
+
605
+ # High concurrency for large networks
606
+ python -m sc2.scng.discovery crawl 10.0.0.1 -c 50 -d 10 -o ./enterprise_map
607
+
608
+ # Full production example
609
+ python -m sc2.scng.discovery crawl \
610
+ core-rtr-01.dc1.example.com \
611
+ core-rtr-01.dc2.example.com \
612
+ --depth 8 \
613
+ --domain dc1.example.com \
614
+ --domain dc2.example.com \
615
+ --exclude "linux,esxi,vcenter,phone,wireless,ups" \
616
+ --concurrency 30 \
617
+ --timeout 10 \
618
+ --output ./network_discovery_$(date +%Y%m%d) \
619
+ --verbose
620
+ ```
621
+
622
+ #### Exclusion Patterns
623
+
624
+ The `--exclude` option filters devices from propagating the crawl. Patterns are:
625
+
626
+ - **Case-insensitive** substring matches
627
+ - **Comma-separated** for multiple patterns in one flag
628
+ - Matched against **three fields**: `sysDescr`, `hostname`, and `sys_name`
629
+
630
+ This means exclusions work for both SNMP-discovered devices (via sysDescr) and SSH-discovered devices (via hostname).
631
+
632
+ | Pattern | Matches |
633
+ |---------|---------|
634
+ | `linux` | Any device with "linux" in sysDescr, hostname, or sys_name |
635
+ | `rtr-lab,sw-test` | Devices with "rtr-lab" OR "sw-test" in any field |
636
+ | `phone,wireless,ap-` | Common patterns to skip IP phones and APs |
637
+
638
+ **Note:** Excluded devices are still discovered (credentials tested, data collected), but their neighbors are not queued for further discovery. This prevents the crawl from expanding through non-network infrastructure.
639
+
640
+ ---
641
+
642
+ ## Output Format
643
+
644
+ Discovery creates per-device folders with JSON data:
645
+
646
+ ```
647
+ discovery_output/
648
+ ├── core-switch-01/
649
+ │ ├── device.json # System info, interfaces
650
+ │ ├── cdp.json # CDP neighbors
651
+ │ └── lldp.json # LLDP neighbors
652
+ ├── dist-switch-01/
653
+ │ └── ...
654
+ ├── devices.csv # Device inventory (for Security Analysis)
655
+ ├── discovery_summary.json
656
+ ├── topology.graphml # yEd-compatible graph
657
+ └── map.json # Topology with bidirectional validation
658
+ ```
659
+
660
+ ### map.json (Topology)
661
+ ```json
662
+ {
663
+ "core-switch-01": {
664
+ "node_details": {
665
+ "ip": "10.1.1.1",
666
+ "platform": "Arista vEOS-lab EOS 4.33.1F"
667
+ },
668
+ "peers": {
669
+ "dist-switch-01": {
670
+ "ip": "10.1.1.2",
671
+ "connections": [
672
+ ["Eth1/1", "Gi0/1"],
673
+ ["Eth1/2", "Gi0/2"]
674
+ ]
675
+ }
676
+ }
677
+ }
678
+ }
679
+ ```
680
+
681
+ ### devices.csv (Security Analysis Input)
682
+ ```csv
683
+ hostname,ip,platform,vendor,model,serial
684
+ core-switch-01,10.1.1.1,Cisco IOS IOS 15.2(4.0.55)E,cisco,WS-C3850-24T,FCW2134L0NK
685
+ dist-switch-01,10.1.1.2,Arista vEOS-lab EOS 4.33.1F,arista,vEOS,SN-VEOS-01
686
+ ```
687
+
688
+ ---
689
+
690
+ ## GUI Theme System
691
+
692
+ The GUI uses a comprehensive theme system with three built-in themes:
693
+
694
+ | Theme | Primary | Accent | Use Case |
695
+ |-------|---------|--------|----------|
696
+ | **Cyber** | `#0a0a0f` | `#00ffff` (cyan) | SOC/NOC aesthetic |
697
+ | **Dark** | `#000000` | `#d4af37` (gold) | Professional elegance |
698
+ | **Light** | `#ffffff` | `#2563eb` (blue) | Bright environments |
699
+
700
+ See [README_Style_Guide.md](README_Style_Guide.md) for widget styling details.
701
+
702
+ ---
703
+
704
+ ## Documentation
705
+
706
+ | Document | Description |
707
+ |----------|-------------|
708
+ | [RELEASE_NOTES_2_5.md](RELEASE_NOTES_2_5.md) | v2.5 release notes — discovery engine + topology viewer |
709
+ | [README_Creds.md](README_Creds.md) | Credential vault API and CLI |
710
+ | [README_scng.md](README_scng.md) | Discovery engine architecture |
711
+ | [README_SNMP_Discovery.md](README_SNMP_Discovery.md) | SNMP collection details |
712
+ | [README_SSH_Discovery.md](README_SSH_Discovery.md) | SSH fallback module |
713
+ | [README_Progress_events.md](README_Progress_events.md) | GUI progress event reference |
714
+ | [README_Style_Guide.md](README_Style_Guide.md) | PyQt6 widget theming guide |
715
+ | [snmp_proxy/README.md](snmp_proxy/README.md) | SNMP proxy deployment for remote polling |
716
+
717
+ ---
718
+
719
+ ## Development Status
720
+
721
+ ### ✅ Implemented
722
+ - SNMP discovery (v2c, v3) with SSH fallback
723
+ - Async crawl engine with concurrent workers and progress events
724
+ - Credential vault with AES-256-GCM encryption
725
+ - CDP and LLDP neighbor detection with bidirectional validation
726
+ - LLDP remote port resolution (Juniper/Linux/Arista)
727
+ - Platform detection via tfsm_fire structured parsing
728
+ - Post-discovery sysName dedup for multi-homed devices
729
+ - Ghost node filtering for NX-OS artifacts
730
+ - CLI for credentials and discovery with hosts file support
731
+ - Themed GUI (Cyber/Dark/Light) with real-time progress
732
+ - Interactive Cytoscape.js topology viewer with nine layout algorithms
733
+ - Layout persistence with sidecar .layout.json files
734
+ - Focus maps with 1-hop neighborhood expansion
735
+ - Position-matched Draw.io export with Cisco stencils and vendor coloring
736
+ - Export to yEd GraphML, PNG, CSV, JSON
737
+ - CVE vulnerability scanning via NIST NVD (IOS, IOS-XE, NX-OS, EOS, JUNOS, PAN-OS, FortiOS)
738
+ - Interactive SNMP device polling with Rapid7 Recog fingerprinting
739
+ - OUI vendor lookup for MAC addresses
740
+
741
+ ### 📋 Planned
742
+ - Credential auto-discovery integration
743
+ - Settings persistence
744
+ - Topology diff (compare discoveries over time)
745
+
746
+ ---
747
+ ## Technical Notes
748
+
749
+ ### Threading Architecture
750
+ The GUI uses a careful threading model to prevent UI lockups:
751
+
752
+ - **Discovery runs in QThread** - async engine wrapped in worker thread
753
+ - **Events throttled at source** - high-frequency events (stats, topology) rate-limited before emission
754
+ - **QueuedConnection for all signals** - ensures slots execute on main thread
755
+ - **WebView isolation** - no webview updates during active discovery; topology loads once at completion
756
+
757
+ ### Topology Data Transfer
758
+ Python→JavaScript communication uses base64 encoding:
759
+ ```python
760
+ # Python side
761
+ b64_data = base64.b64encode(json.dumps(topology).encode()).decode()
762
+ self._run_js(f"TopologyViewer.loadTopologyB64('{b64_data}')")
763
+ ```
764
+ ```javascript
765
+ // JavaScript side
766
+ loadTopologyB64(b64String) {
767
+ const jsonString = atob(b64String);
768
+ this.loadTopology(jsonString);
769
+ }
770
+ ```
771
+ This avoids JSON escaping issues with complex network data containing special characters.
772
+
773
+ ### Security Analysis Architecture
774
+ The Security Widget operates independently of the discovery engine:
775
+ - **Platform parsing** - regex patterns extract vendor/product/version from sysDescr strings
776
+ - **CPE generation** - converts parsed data to NIST CPE 2.3 format
777
+ - **NVD API client** - async queries with rate limiting and caching
778
+ - **SQLite cache** - `~/.scng/cve_cache.db` stores CVE data to avoid repeated API calls
779
+ - **Device tracking** - maps CVEs back to specific hostnames/IPs from discovery CSV
780
+
781
+ ---
782
+
783
+ ## Security Considerations
784
+
785
+ - **Master password** is never stored; derived key is held in memory only while vault is unlocked
786
+ - **Credentials are encrypted** with AES-256-GCM before storage
787
+ - **Salt** is randomly generated per installation
788
+ - **No credentials in logs** - discovery output never includes passwords/communities
789
+ - **Vault auto-locks** when application exits
790
+ - **CVE cache is local** - no sensitive data sent to NVD (only CPE queries)
791
+
792
+ ---
793
+
794
+ ## Performance
795
+
796
+ Typical discovery rates:
797
+ - Single device (SNMP): 2-5 seconds
798
+ - Single device (SSH fallback): 5-15 seconds
799
+ - 100 devices: 3-8 minutes with 20 concurrent workers
800
+ - 750+ devices: ~4-5 hours (production tested, 88%+ success rate)
801
+
802
+ Security Analysis:
803
+ - NVD API (no key): 5 requests per 30 seconds
804
+ - NVD API (with key): 50 requests per 30 seconds
805
+ - Cached lookups: instant
806
+
807
+ GUI remains responsive during discovery due to throttled event architecture.
808
+
809
+ ---
810
+
811
+ ## License
812
+
813
+ This project is licensed under the **GNU General Public License v3.0** - see [LICENSE](LICENSE) for details.
814
+
815
+
816
+ ---
817
+
818
+ ## Author
819
+
820
+ **Scott Peterman** - Network Engineer
821
+
822
+ - GitHub: [@scottpeterman](https://github.com/scottpeterman)
823
+ - Homepage: [scottpeterman](https://scottpeterman.github.io/)
824
+
825
+ *Built by a network engineer who got tired of manually drawing topology diagrams.*
826
+
827
+ ---
828
+
829
+ ## Acknowledgments
830
+
831
+ - Network visualization powered by [Cytoscape.js](https://js.cytoscape.org/)
832
+ - SNMP operations via [pysnmp-lextudio](https://github.com/lextudio/pysnmp)
833
+ - SSH via [Paramiko](https://www.paramiko.org/)
834
+ - CLI parsing with [TextFSM](https://github.com/google/textfsm)
835
+ - GUI powered by [PyQt6](https://www.riverbankcomputing.com/software/pyqt/)
836
+ - Encryption via [cryptography](https://cryptography.io/)
837
+ - CVE data from [NIST National Vulnerability Database](https://nvd.nist.gov/)
838
+ - Device fingerprinting via [Rapid7 Recog](https://github.com/rapid7/recog)
839
+ - OUI database from [Wireshark](https://www.wireshark.org/)
840
+ - Draw.io stencils from [mxgraph Cisco library](https://github.com/jgraph/mxgraph)