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.
- secure_cartography-2.5.0/PKG-INFO +840 -0
- secure_cartography-2.5.0/README.md +783 -0
- secure_cartography-2.5.0/pyproject.toml +148 -0
- secure_cartography-2.5.0/sc2/__init__.py +5 -0
- secure_cartography-2.5.0/sc2/export/__init__.py +0 -0
- secure_cartography-2.5.0/sc2/export/drawio_exporter.py +792 -0
- secure_cartography-2.5.0/sc2/export/graphml_exporter.py +733 -0
- secure_cartography-2.5.0/sc2/fingerprint.py +667 -0
- secure_cartography-2.5.0/sc2/scng/__init__.py +0 -0
- secure_cartography-2.5.0/sc2/scng/audit/__init__.py +58 -0
- secure_cartography-2.5.0/sc2/scng/audit/__main__.py +10 -0
- secure_cartography-2.5.0/sc2/scng/audit/cli.py +315 -0
- secure_cartography-2.5.0/sc2/scng/audit/collector.py +539 -0
- secure_cartography-2.5.0/sc2/scng/audit/report.py +1044 -0
- secure_cartography-2.5.0/sc2/scng/creds/__init__.py +156 -0
- secure_cartography-2.5.0/sc2/scng/creds/__main__.py +5 -0
- secure_cartography-2.5.0/sc2/scng/creds/cli.py +760 -0
- secure_cartography-2.5.0/sc2/scng/creds/encryption.py +340 -0
- secure_cartography-2.5.0/sc2/scng/creds/models.py +392 -0
- secure_cartography-2.5.0/sc2/scng/creds/resolver.py +933 -0
- secure_cartography-2.5.0/sc2/scng/creds/schema.py +354 -0
- secure_cartography-2.5.0/sc2/scng/creds/vault.py +1060 -0
- secure_cartography-2.5.0/sc2/scng/discovery/__init__.py +90 -0
- secure_cartography-2.5.0/sc2/scng/discovery/__main__.py +13 -0
- secure_cartography-2.5.0/sc2/scng/discovery/cli.py +720 -0
- secure_cartography-2.5.0/sc2/scng/discovery/discovery_controller.py +688 -0
- secure_cartography-2.5.0/sc2/scng/discovery/discovery_to_map.py +398 -0
- secure_cartography-2.5.0/sc2/scng/discovery/engine.py +1980 -0
- secure_cartography-2.5.0/sc2/scng/discovery/events.py +650 -0
- secure_cartography-2.5.0/sc2/scng/discovery/models.py +427 -0
- secure_cartography-2.5.0/sc2/scng/discovery/oids.py +446 -0
- secure_cartography-2.5.0/sc2/scng/discovery/snmp/__init__.py +98 -0
- secure_cartography-2.5.0/sc2/scng/discovery/snmp/collectors/__init__.py +62 -0
- secure_cartography-2.5.0/sc2/scng/discovery/snmp/collectors/arp.py +117 -0
- secure_cartography-2.5.0/sc2/scng/discovery/snmp/collectors/cdp.py +241 -0
- secure_cartography-2.5.0/sc2/scng/discovery/snmp/collectors/interfaces.py +241 -0
- secure_cartography-2.5.0/sc2/scng/discovery/snmp/collectors/lldp.py +578 -0
- secure_cartography-2.5.0/sc2/scng/discovery/snmp/collectors/system.py +153 -0
- secure_cartography-2.5.0/sc2/scng/discovery/snmp/parsers.py +613 -0
- secure_cartography-2.5.0/sc2/scng/discovery/snmp/walker.py +475 -0
- secure_cartography-2.5.0/sc2/scng/discovery/ssh/__init__.py +59 -0
- secure_cartography-2.5.0/sc2/scng/discovery/ssh/__main__.py +208 -0
- secure_cartography-2.5.0/sc2/scng/discovery/ssh/client.py +863 -0
- secure_cartography-2.5.0/sc2/scng/discovery/ssh/client_original.py +561 -0
- secure_cartography-2.5.0/sc2/scng/discovery/ssh/collector.py +776 -0
- secure_cartography-2.5.0/sc2/scng/discovery/ssh/parsers.py +259 -0
- secure_cartography-2.5.0/sc2/scng/utils/__init__.py +0 -0
- secure_cartography-2.5.0/sc2/scng/utils/resource_helper.py +158 -0
- secure_cartography-2.5.0/sc2/scng/utils/tfsm_engine.py +246 -0
- secure_cartography-2.5.0/sc2/scng/utils/tfsm_fire.py +233 -0
- secure_cartography-2.5.0/sc2/scng/utils/tfsm_fire_tester.py +2369 -0
- secure_cartography-2.5.0/sc2/scng/utils/tfsm_templates.db +0 -0
- secure_cartography-2.5.0/sc2/ui/__init__.py +116 -0
- secure_cartography-2.5.0/sc2/ui/__main__.py +108 -0
- secure_cartography-2.5.0/sc2/ui/assets/banner_amber.png +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/banner_cyber.png +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/banner_light.png +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/100baset-hub.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/100baset_hub.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/10700.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/10700.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/10GE_FCoE.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/10ge-fcoe.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/15200.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/15200.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/3174_(desktop).jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/3200_mobile_access_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/3x74-floor-cluster-control.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/3x74_(floor).jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/6700-series.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/6700_series.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/7500ars7513.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/7500ars_(7513).jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ACS.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ASR_1000_Series.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/AXP.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/CUBE.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Ground_terminal.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/MSE.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/MXE.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Mediator.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/NCE.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/NCE_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Nexus_1000.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Nexus_2000.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Nexus_5000.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Nexus_7000.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/RF_modem.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Service_Module.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Service_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Services.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Set_top_box.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/Space_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/TP_MCU.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/VSD.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/VSS.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/__init__.py +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/access_gateway.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/accesspoint.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/accesspoint.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ace.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ace.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/acs.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/adm.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/adm.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/androgenous-person.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/androgenous_person.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/antenna.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/antenna.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/asa-5500.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/asic-processor.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/asic_processor.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/asr-1000-series.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ata.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ata.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/atm-3800.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/atm-fast-gigabit.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/atm-router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/atm-switch.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/atm-tag-switch-router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/atm_3800.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/atm_fast_gigabit_etherswitch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/atm_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/atm_switch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/atm_tag_switch_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/avs.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/avs.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/axp.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/bbfw.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/bbfw_media.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/bbsm.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/bbsm.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/branch-office.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/branch_office.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/breakout-box.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/breakout_box.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/bridge.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/bridge.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/broadband_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/broadcast-router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/bts-10200.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/bts_10200.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cable-modem.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cable_modem.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/callmanager.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/callmanager.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/car.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/car.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/carrier-routing-system.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/carrier_routing_system.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cddi-fddi.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cddi-fddi.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cdm.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cdm.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cell-phone.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cellular_phone.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/centri-firewall.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/centri_firewall.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco-1000.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco-ca.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco-file-engine.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco-hub.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco-security.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco-unified-presence-server.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco-unity-express.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco-works.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco_1000.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco_asa_5500.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco_ca.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco_file_engine.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco_hub.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco_unified_presence_server.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cisco_unityexpress.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ciscosecurity.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ciscoworks.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/class-4-5-switch.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/class_4_5_switch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cloud.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cloud.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/communications-server.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/communications_server.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/congtent-switch-module.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/contact-center.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/contact_center.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content-acquirer.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content-engine-cache-director.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content-service-router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content-service-switch-1100.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content-switch.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content-transformation-engine-.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content_engine_(cache_director).jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content_service_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content_service_switch_1100.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content_switch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content_switch_module.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/content_transformation_engine_(cte).jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cs-mars.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cs-mars.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/csm-s.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/csm-s.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/csu-dsu.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/csu_dsu.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/cube.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/detector.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/detector.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/director-class-fibre-channel-di.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/director-class_fibre_channel_director.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/directory-server.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/directory_server.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/diskette.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/diskette.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/distributed-director.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/distributed_director.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/dot-dot.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/dot-dot.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/dpt.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/dpt.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/dslam.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/dslam.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/dual-mode.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/dual_mode_ap.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/dwdm-filter.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/dwdm_filter.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/end-office.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/end_office.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fax.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fax.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fc-storage.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fc_storage.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fddi-ring.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fddi_ring.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fibre-channel-disk-subsystem.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fibre-channel-fabric-switch.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fibre_channel_disk_subsystem.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fibre_channel_fabric_switch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/file-cabinet.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/file-server.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/file_cabinet.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/file_server.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fileserver.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/fileserver.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/firewall-service-module-fwsm.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/firewall.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/firewall.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/firewall_service_module_(fwsm).jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/front-end-processor.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/front_end_processor.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/gatekeeper.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/gatekeeper.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/general-appliance.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/general_applicance.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/generic-building.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/generic-gateway.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/generic-processor.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/generic-softswitch.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/generic_building.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/generic_gateway.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/generic_processor.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/generic_softswitch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/gigabit-switch-atm-tag-router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/gigabit_switch_atm_tag_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/government-building.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/government_building.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ground-terminal.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/guard.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/guard.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/h.323.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/h323.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/handheld.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/handheld.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/hootphone.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/hootphone.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/host.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/host.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/hp-mini.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/hp_mini.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/hub.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/hub.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/iad-router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/iad_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ibm-mainframe.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ibm-mini-as400.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ibm-tower.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ibm_mainframe.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ibm_mini_as400.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ibm_tower.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/icm.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/icm.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ics.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ics.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/intelliswitch-stack.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/intelliswitch_stack.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/internet-streamer.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/internet_streamer.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ios-firewall.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ios-slb.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ios_firewall.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ios_slb.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ip-communicator.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ip-dsl.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ip-phone.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ip-telephony-router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ip.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ip.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ip_communicator.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ip_dsl.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ip_phone.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ip_telephony_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/iptc.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/iptc.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/iptv-content-manager.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/iptv-server.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/iptv_content_manager.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/iptv_server.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/iscsi-router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/iscsi_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/isdn-switch.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/isdn_switch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/itp.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/itp.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/jbod.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/jbod.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/key.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/key.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/keys.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/keys.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/lan-to-lan.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/lan_to_lan.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/laptop.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/laptop.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/layer-2-remote-switch.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/layer-3-switch.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/layer_2_remote_switch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/layer_3_switch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/lightweight-ap.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/lightweight_ap.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/localdirector.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/localdirector.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/lock.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/lock.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/longreach-cpe.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/longreach_cpe.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mac-woman.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mac_woman.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/macintosh.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/macintosh.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/man-woman.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/man_woman.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mas-gateway.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mas_gateway.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mau.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mau.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mcu.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mcu.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mdu.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mdu.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/me1100.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/me_1100.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mediator.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/meetingplace.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/meetingplace.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mesh-ap.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mesh_ap.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/metro-1500.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/metro_1500.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mgx-8000-multiservice-switch.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mgx_8000_multiservice_switch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/microphone.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/microphone.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/microwebserver.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/microwebserver.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mini-vax.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mini_vax.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mobile-access-ip-phone.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mobile-access-router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mobile-streamer.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mobile_access_ip_phone.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mobile_access_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mobile_streamer.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/modem.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/modem.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/moh-server.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/moh_server.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mse.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mulitswitch_device.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/multi-fabric-server-switch.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/multi-fabric_server_switch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/multilayer-remote-switch.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/multilayer_remote_switch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/multiswitch-device.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mux.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mux.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/mxe.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/nac-appliance.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/nac_appliance.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/nce-router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/nce.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/netflow-router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/netflow_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/netranger.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/netranger.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/netsonar.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/netsonar.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/network-management.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/network-security.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/network_management.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/nexus-1000.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/nexus-2000-fabric-extender.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/nexus-5000.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/nexus-7000.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/octel.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/octel.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ons15500.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ons15500.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/optical-amplifier.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/optical-services-router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/optical-transport.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/optical_amplifier.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/optical_services_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/optical_transport.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pad-x28.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pad.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pad.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pad_x.28.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/page-icon.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/page_icon.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pbx-switch.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pbx.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pbx.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pbx_switch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc-adapter-card.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc-man.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc-routercard.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc-sosftware.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc-video.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc_adapter_card.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc_man.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc_routercard.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc_software.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pc_video.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pda.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pda.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/phone-fax.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/phone.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/phone.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/phone_fax.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pix-firewall.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pix_firewall.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/platform_icon_drawio.json +483 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/platform_icon_map.json +269 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pmc.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pmc.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/printer.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/printer.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/programmable-switch.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/programmable_switch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/protocol-translator.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/protocol_translator.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pxf.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/pxf.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/radio-tower.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/radio_tower.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ratemux.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ratemux.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/relational-database.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/relational_database.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/repeater.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/repeater.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/rf-modem.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/route-switch-processor.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/route_switch_processor.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/router-firewall.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/router-in-building.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/router-with-silicon-switch.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/router_firewall.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/router_with_silicon_switch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/routerin_building.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/rpsrps.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/rpsrps.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/running-man.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/running_man.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/safeharbor-icon.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/safeharbor_icon.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/sattelite-dish.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/sattelite.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/sattelite.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/sattelite_dish.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/scanner.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/scanner.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/server-switch.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/server-with-router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/server_switch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/server_with_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/service-control.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/service-module.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/service-router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/service_control.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/services.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/set-top-box.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/simulitlayer_switch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/simultlayer-switch.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/sip-proxy-server.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/sip_proxy_werver.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/sitting-woman.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/sitting_woman.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/small-business.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/small-hub.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/small_business.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/small_hub.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/softphone.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/softphone.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/softswitch-pgw-mgc.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/softswitch_pgw_mgc.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/software-based-server.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/software_based_server.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/space-router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/speaker.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/speaker.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ssc.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ssc.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ssl-terminator.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ssl_terminator.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/standard-host.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/standard_host.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/standing-man.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/standing-woman.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/standing_man.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/standing_woman.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/stb.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/stb.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/storage-router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/storage_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/storage_server.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/storge-server.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/stp.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/stp.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/streamer.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/streamer.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/sun-workstation.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/sun_workstation.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/supercomputer.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/supercomputer.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/svx.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/svx.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/system-controller.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/system_controller.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/tablet.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/tablet.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/tape-array.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/tape_array.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/tdm-router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/tdm_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/telecommuter-house-pc.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/telecommuter-house.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/telecommuter-icon.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/telecommuter_house.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/telecommuter_house_pc.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/telecommuter_icon.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/telepresence-3200.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/terminal.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/terminal.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/token.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/token.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/tp-mcu.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/transpath.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/transpath.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/truck.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/truck.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/turret.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/turret.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/tv.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/tv.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ubr910.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ubr910.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/umg-series.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/umg_series.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/unity-server.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/unity_server.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/universal-gateway.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/universal_gateway.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/university.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/university.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/upc.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/upc.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ups.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/ups.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/vault.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/vault.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/video-camera.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/video_camera.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/vip.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/vip.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/virtual-layer-switch.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/virtual-switch-controller-vsc3.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/virtual_layer_switch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/virtual_switch_controller_(vsc3000).jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/voice-atm-switch.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/voice-commserver.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/voice-router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/voice-switch.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/voice_atm_switch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/voice_commserver.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/voice_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/voice_switch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/vpn-concentrator.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/vpn-gateway.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/vpn_concentrator.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/vpn_gateway.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/vss.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wae.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wae.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wavelength-router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wavelength_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/web-browser.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/web-cluster.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/web_browser.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/web_cluster.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wi-fi-tag.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wi-fi_tag.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wireless-link.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wireless-location-appliance.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wireless-router.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wireless-transport.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wireless.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wireless.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wireless_bridge.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wireless_location_appliance.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wireless_router.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wireless_transport.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wirelss-bridge.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wism.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wism.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wlan-controller.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/wlan_controller.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/workgroup-director.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/workgroup-switch.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/workgroup_director.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/workgroup_switch.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/workstation.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/workstation.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/www-server.svg +2 -0
- secure_cartography-2.5.0/sc2/ui/assets/icons_lib/www_server.jpg +0 -0
- secure_cartography-2.5.0/sc2/ui/help_dialog.py +949 -0
- secure_cartography-2.5.0/sc2/ui/login.py +852 -0
- secure_cartography-2.5.0/sc2/ui/main_window.py +757 -0
- secure_cartography-2.5.0/sc2/ui/security_integration.py +261 -0
- secure_cartography-2.5.0/sc2/ui/settings.py +226 -0
- secure_cartography-2.5.0/sc2/ui/themes.py +2190 -0
- secure_cartography-2.5.0/sc2/ui/widgets/__init__.py +62 -0
- secure_cartography-2.5.0/sc2/ui/widgets/connection_panel.py +265 -0
- secure_cartography-2.5.0/sc2/ui/widgets/credential_dialog.py +715 -0
- secure_cartography-2.5.0/sc2/ui/widgets/credentials_panel.py +700 -0
- secure_cartography-2.5.0/sc2/ui/widgets/device_poll_dialog.py +806 -0
- secure_cartography-2.5.0/sc2/ui/widgets/discovery_log.py +267 -0
- secure_cartography-2.5.0/sc2/ui/widgets/discovery_options.py +382 -0
- secure_cartography-2.5.0/sc2/ui/widgets/local_snmp_ops.py +867 -0
- secure_cartography-2.5.0/sc2/ui/widgets/local_snmp_service.py +930 -0
- secure_cartography-2.5.0/sc2/ui/widgets/map_viewer_dialog.py +1856 -0
- secure_cartography-2.5.0/sc2/ui/widgets/node_edit_dialog.py +271 -0
- secure_cartography-2.5.0/sc2/ui/widgets/output_panel.py +268 -0
- secure_cartography-2.5.0/sc2/ui/widgets/panel.py +242 -0
- secure_cartography-2.5.0/sc2/ui/widgets/platform_icons.py +509 -0
- secure_cartography-2.5.0/sc2/ui/widgets/poll_worker.py +681 -0
- secure_cartography-2.5.0/sc2/ui/widgets/progress_panel.py +260 -0
- secure_cartography-2.5.0/sc2/ui/widgets/security_widget.py +2207 -0
- secure_cartography-2.5.0/sc2/ui/widgets/stat_box.py +271 -0
- secure_cartography-2.5.0/sc2/ui/widgets/tag_input.py +352 -0
- secure_cartography-2.5.0/sc2/ui/widgets/toggle_switch.py +289 -0
- secure_cartography-2.5.0/sc2/ui/widgets/topology_preview_panel.py +484 -0
- secure_cartography-2.5.0/sc2/ui/widgets/topology_viewer.html +1113 -0
- secure_cartography-2.5.0/sc2/ui/widgets/topology_viewer.py +688 -0
- secure_cartography-2.5.0/secure_cartography.egg-info/PKG-INFO +840 -0
- secure_cartography-2.5.0/secure_cartography.egg-info/SOURCES.txt +690 -0
- secure_cartography-2.5.0/secure_cartography.egg-info/dependency_links.txt +1 -0
- secure_cartography-2.5.0/secure_cartography.egg-info/entry_points.txt +7 -0
- secure_cartography-2.5.0/secure_cartography.egg-info/requires.txt +21 -0
- secure_cartography-2.5.0/secure_cartography.egg-info/top_level.txt +6 -0
- secure_cartography-2.5.0/setup.cfg +4 -0
- secure_cartography-2.5.0/setup.py +138 -0
- secure_cartography-2.5.0/snmp_proxy/__init__.py +0 -0
- secure_cartography-2.5.0/snmp_proxy/src/snmp_proxy/__init__.py +23 -0
- secure_cartography-2.5.0/snmp_proxy/src/snmp_proxy/__main__.py +202 -0
- secure_cartography-2.5.0/snmp_proxy/src/snmp_proxy/jobs.py +468 -0
- secure_cartography-2.5.0/snmp_proxy/src/snmp_proxy/models.py +131 -0
- secure_cartography-2.5.0/snmp_proxy/src/snmp_proxy/server.py +276 -0
- secure_cartography-2.5.0/snmp_proxy/src/snmp_proxy/snmp_ops.py +329 -0
- secure_cartography-2.5.0/snmp_proxy/src/snmp_proxy/test_api.py +298 -0
- 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
|
+
[](https://www.python.org/downloads/)
|
|
63
|
+
[](https://www.gnu.org/licenses/gpl-3.0)
|
|
64
|
+
[](https://www.riverbankcomputing.com/software/pyqt/)
|
|
65
|
+
[](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)
|