The cryptography-based networking stack for building unstoppable networks with LoRa, Packet Radio, WiFi and everything in between.
This report presents the forensic synthetic code analysis of markqvist/Reticulum, a Python project with 6,487 GitHub stars. SynthScan v2.0 examined 104,121 lines of code across 198 source files, recording 1693 pattern matches distributed across 16 syntactic categories. The overall adjusted score of 16.0 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 1693 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/link.py | 40 | except Exception as e: | CODE |
| LOW | tests/link.py | 840 | except Exception as e: | CODE |
| MEDIUM | tests/link.py | 841 | print("Error: "+str(e)) | CODE |
| LOW | docs/clean_md.py | 90 | except Exception as e: | CODE |
| MEDIUM | docs/clean_md.py | 91 | print(f"Error processing {filepath}: {e}", file=sys.stderr) | CODE |
| MEDIUM | docs/clean_md.py | 112 | print(f"Error: '{directory}' is not a valid directory", file=sys.stderr) | CODE |
| MEDIUM | docs/clean_md.py | 76 | def process_file(filepath, start_patterns, any_patterns): | CODE |
| MEDIUM | docs/markdown/examples.md | 3218 | def read_loop(self): | CODE |
| LOW | docs/markdown/examples.md | 554 | except Exception as e: | CODE |
| LOW | docs/markdown/examples.md | 960 | except Exception as e: | CODE |
| LOW | docs/markdown/examples.md | 1278 | except Exception as e: | CODE |
| LOW | docs/markdown/examples.md | 1567 | except Exception as e: | CODE |
| LOW | docs/markdown/examples.md | 1961 | except Exception as e: | CODE |
| LOW | docs/markdown/examples.md | 2287 | except Exception as e: | CODE |
| LOW | docs/markdown/examples.md | 2533 | except Exception as e: | CODE |
| LOW | docs/markdown/examples.md | 2550 | except Exception as e: | CODE |
| LOW | docs/markdown/examples.md | 3143 | except Exception as e: | CODE |
| LOW | docs/markdown/examples.md | 3256 | except Exception as e: | CODE |
| LOW | docs/markdown/examples.md | 3279 | except Exception as e: | CODE |
| LOW | Examples/Link.py | 198 | except Exception as e: | CODE |
| LOW | Examples/Channel.py | 292 | except Exception as e: | CODE |
| LOW | Examples/Request.py | 189 | except Exception as e: | CODE |
| LOW⚡ | Examples/Resource.py | 206 | except Exception as e: | CODE |
| LOW | Examples/Filetransfer.py | 141 | except Exception as e: | CODE |
| LOW | Examples/Filetransfer.py | 158 | except Exception as e: | CODE |
| LOW | Examples/Ratchets.py | 139 | except Exception as e: | CODE |
| LOW | Examples/ExampleInterface.py | 142 | except Exception as e: | CODE |
| LOW | Examples/ExampleInterface.py | 256 | except Exception as e: | CODE |
| LOW | Examples/ExampleInterface.py | 279 | except Exception as e: | CODE |
| MEDIUM | Examples/ExampleInterface.py | 218 | def read_loop(self): | CODE |
| LOW | Examples/Buffer.py | 225 | except Exception as e: | CODE |
| LOW | Examples/Identify.py | 219 | except Exception as e: | CODE |
| LOW | Examples/Echo.py | 131 | except Exception as e: | CODE |
| MEDIUM | RNS/Link.py | 391 | def validate_proof(self, packet): | CODE |
| MEDIUM | RNS/Link.py | 516 | def rtt_packet(self, packet): | CODE |
| MEDIUM | RNS/Link.py | 674 | def teardown_packet(self, packet): | CODE |
| MEDIUM | RNS/Link.py | 1161 | def encrypt(self, plaintext): | CODE |
| MEDIUM | RNS/Link.py | 1175 | def decrypt(self, ciphertext): | CODE |
| MEDIUM | RNS/Link.py | 1187 | def validate(self, signature, message): | CODE |
| LOW⚡ | RNS/Link.py | 1165 | except Exception as e: | CODE |
| LOW⚡ | RNS/Link.py | 1171 | except Exception as e: | CODE |
| LOW⚡ | RNS/Link.py | 1180 | except Exception as e: | CODE |
| LOW⚡ | RNS/Link.py | 1400 | except Exception as e: RNS.log("Error while executing request timed out callback from "+str(self)+". The | CODE |
| LOW⚡ | RNS/Link.py | 1410 | except Exception as e: RNS.log("Error while executing request timed out callback from "+str(self)+". The | CODE |
| LOW | RNS/Link.py | 195 | except Exception as e: | CODE |
| LOW | RNS/Link.py | 221 | except Exception as e: | CODE |
| LOW | RNS/Link.py | 448 | except Exception as e: | CODE |
| LOW | RNS/Link.py | 534 | except Exception as e: RNS.log("Error occurred in external link establishment callback. The contained ex | CODE |
| LOW | RNS/Link.py | 536 | except Exception as e: | CODE |
| LOW | RNS/Link.py | 683 | except Exception as e: pass | CODE |
| LOW | RNS/Link.py | 703 | except Exception as e: | CODE |
| LOW | RNS/Link.py | 878 | except Exception as e: RNS.log("Error occurred while handling response. The contained exception was: | CODE |
| LOW | RNS/Link.py | 961 | except Exception as e: RNS.log("Error while executing proof request callback from "+ | CODE |
| LOW | RNS/Link.py | 983 | except Exception as e: RNS.log(f"Error while executing remote identified | CODE |
| LOW | RNS/Link.py | 1000 | except Exception as e: RNS.log("Error occurred while handling request. The contained exception w | CODE |
| LOW | RNS/Link.py | 1013 | except Exception as e: RNS.log("Error occurred while handling response. The contained exception | CODE |
| LOW | RNS/Link.py | 1066 | except Exception as e: | CODE |
| LOW | RNS/Link.py | 1070 | except Exception as e: | CODE |
| LOW | RNS/Link.py | 1191 | except Exception as e: return False | CODE |
| LOW | RNS/Link.py | 1380 | except Exception as e: | CODE |
| 732 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/channel.py | 37 | CODE | |
| LOW | tests/channel.py | 448 | CODE | |
| LOW | tests/channel.py | 41 | CODE | |
| LOW | docs/clean_md.py | 39 | CODE | |
| LOW | Examples/Link.py | 167 | CODE | |
| LOW | Examples/Channel.py | 255 | CODE | |
| LOW | Examples/Filetransfer.py | 302 | CODE | |
| LOW | Examples/Filetransfer.py | 342 | CODE | |
| LOW | Examples/Ratchets.py | 228 | CODE | |
| LOW | Examples/ExampleInterface.py | 218 | CODE | |
| LOW | Examples/Identify.py | 188 | CODE | |
| LOW | Examples/Echo.py | 219 | CODE | |
| LOW | RNS/Link.py | 186 | CODE | |
| LOW | RNS/Link.py | 391 | CODE | |
| LOW | RNS/Link.py | 516 | CODE | |
| LOW | RNS/Link.py | 712 | CODE | |
| LOW | RNS/Link.py | 804 | CODE | |
| LOW | RNS/Link.py | 857 | CODE | |
| LOW | RNS/Link.py | 929 | CODE | |
| LOW | RNS/Link.py | 1412 | CODE | |
| LOW | RNS/Destination.py | 244 | CODE | |
| LOW | RNS/Destination.py | 414 | CODE | |
| LOW | RNS/Destination.py | 437 | CODE | |
| LOW | RNS/Destination.py | 622 | CODE | |
| LOW | RNS/Discovery.py | 68 | CODE | |
| LOW | RNS/Discovery.py | 97 | CODE | |
| LOW | RNS/Discovery.py | 246 | CODE | |
| LOW | RNS/Discovery.py | 468 | CODE | |
| LOW | RNS/Discovery.py | 521 | CODE | |
| LOW | RNS/Discovery.py | 592 | CODE | |
| LOW | RNS/Discovery.py | 659 | CODE | |
| LOW | RNS/Discovery.py | 697 | CODE | |
| LOW | RNS/Discovery.py | 780 | CODE | |
| LOW | RNS/Discovery.py | 815 | CODE | |
| LOW | RNS/Transport.py | 219 | CODE | |
| LOW | RNS/Transport.py | 483 | CODE | |
| LOW | RNS/Transport.py | 522 | CODE | |
| LOW | RNS/Transport.py | 1044 | CODE | |
| LOW | RNS/Transport.py | 1069 | CODE | |
| LOW | RNS/Transport.py | 1109 | CODE | |
| LOW | RNS/Transport.py | 1430 | CODE | |
| LOW | RNS/Transport.py | 2421 | CODE | |
| LOW | RNS/Transport.py | 2478 | CODE | |
| LOW | RNS/Transport.py | 2499 | CODE | |
| LOW | RNS/Transport.py | 2598 | CODE | |
| LOW | RNS/Transport.py | 2663 | CODE | |
| LOW | RNS/Transport.py | 2902 | CODE | |
| LOW | RNS/Transport.py | 2920 | CODE | |
| LOW | RNS/Transport.py | 2954 | CODE | |
| LOW | RNS/Transport.py | 2999 | CODE | |
| LOW | RNS/Transport.py | 3172 | CODE | |
| LOW | RNS/Transport.py | 3259 | CODE | |
| LOW | RNS/Transport.py | 3292 | CODE | |
| LOW | RNS/Transport.py | 3335 | CODE | |
| LOW | RNS/Transport.py | 3425 | CODE | |
| LOW | RNS/Transport.py | 3576 | CODE | |
| LOW | RNS/Transport.py | 3615 | CODE | |
| LOW | RNS/Reticulum.py | 392 | CODE | |
| LOW | RNS/Reticulum.py | 454 | CODE | |
| LOW | RNS/Reticulum.py | 733 | CODE | |
| 245 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/markdown/examples.md | 21 | # destinations we create. Since this basic example | COMMENT |
| LOW | docs/markdown/examples.md | 581 | # Let's first check if RNS knows a path to the destination. | COMMENT |
| LOW | docs/markdown/examples.md | 781 | ########################################################## | COMMENT |
| LOW | docs/markdown/examples.md | 1061 | ########################################################## | COMMENT |
| LOW | docs/markdown/examples.md | 1681 | import argparse | COMMENT |
| LOW | docs/markdown/examples.md | 1701 | # same object definitions to be able to communicate over | COMMENT |
| LOW | docs/markdown/examples.md | 1721 | # reserved for the system. | COMMENT |
| LOW | docs/markdown/examples.md | 1741 | # | COMMENT |
| LOW | docs/markdown/examples.md | 1841 | COMMENT | |
| LOW | docs/markdown/examples.md | 2081 | COMMENT | |
| LOW | docs/markdown/examples.md | 2401 | # encryption and hashmap sequencing can take a long time # | COMMENT |
| LOW | docs/markdown/examples.md | 3001 | ```default | COMMENT |
| LOW | docs/markdown/examples.md | 3101 | # raising an exception. | COMMENT |
| LOW | docs/markdown/interfaces.md | 61 | # This example demonstrates an more specifically | COMMENT |
| LOW | docs/markdown/interfaces.md | 441 | # port = 4242 | COMMENT |
| LOW | docs/markdown/interfaces.md | 561 | # target RNode must be paired with the | COMMENT |
| LOW | docs/markdown/interfaces.md | 581 | COMMENT | |
| LOW | docs/markdown/interfaces.md | 601 | # id_callsign = MYCALL-0 | COMMENT |
| LOW | docs/markdown/interfaces.md | 641 | # Enable interface if you want to use it! | COMMENT |
| LOW | docs/markdown/interfaces.md | 681 | # Select coding rate 5. Valid range | COMMENT |
| LOW | docs/markdown/interfaces.md | 701 | COMMENT | |
| LOW | docs/markdown/interfaces.md | 721 | spreadingfactor = 7 | COMMENT |
| LOW | docs/markdown/interfaces.md | 821 | slottime = 20 | COMMENT |
| LOW | docs/markdown/interfaces.md | 881 | stopbits = 1 | COMMENT |
| LOW | docs/markdown/forhumans.md | 1 | # An Explanation of Reticulum for Human Beings | COMMENT |
| LOW | docs/markdown/using.md | 61 | [reticulum] | COMMENT |
| LOW | docs/markdown/using.md | 81 | share_instance = Yes | COMMENT |
| LOW | docs/markdown/using.md | 101 | # shared_instance_type = tcp | COMMENT |
| LOW | docs/markdown/using.md | 121 | # enable_remote_management = yes | COMMENT |
| LOW | docs/markdown/using.md | 141 | COMMENT | |
| LOW | docs/source/conf.py | 41 | # This pattern also affects html_static_path and html_extra_path. | COMMENT |
| LOW | docs/source/conf.py | 81 | # html_theme = "pydata_sphinx_theme" | COMMENT |
| LOW | docs/source/conf.py | 101 | # return False | COMMENT |
| LOW | docs/manual/_sources/using.rst.txt | 61 | COMMENT | |
| LOW | docs/manual/_sources/using.rst.txt | 81 | # Network Stack will create a shared instance, that other | COMMENT |
| LOW | docs/manual/_sources/using.rst.txt | 101 | # specifying a unique set of ports for each: | COMMENT |
| LOW | docs/manual/_sources/using.rst.txt | 121 | COMMENT | |
| LOW | docs/manual/_sources/using.rst.txt | 141 | # This behaviour is disabled by default. | COMMENT |
| LOW | docs/manual/_sources/using.rst.txt | 161 | # 2: Log warnings and lower log levels | COMMENT |
| LOW | docs/manual/_sources/interfaces.rst.txt | 461 | # The above configuration will allow communication | COMMENT |
| LOW | docs/manual/_sources/interfaces.rst.txt | 581 | # Enable interface if you want use it! | COMMENT |
| LOW | docs/manual/_sources/interfaces.rst.txt | 601 | # BLE MAC address or by any available. | COMMENT |
| LOW | docs/manual/_sources/interfaces.rst.txt | 621 | COMMENT | |
| LOW | docs/manual/_sources/interfaces.rst.txt | 641 | # For certain homebrew RNode interfaces | COMMENT |
| LOW | docs/manual/_sources/interfaces.rst.txt | 701 | # Set frequency to 2.4GHz | COMMENT |
| LOW | docs/manual/_sources/interfaces.rst.txt | 721 | COMMENT | |
| LOW | docs/manual/_sources/interfaces.rst.txt | 761 | # the longest range. | COMMENT |
| LOW | docs/manual/_sources/interfaces.rst.txt | 861 | COMMENT | |
| LOW | Examples/Link.py | 1 | ########################################################## | COMMENT |
| LOW | Examples/Channel.py | 21 | COMMENT | |
| LOW | Examples/Channel.py | 41 | COMMENT | |
| LOW | Examples/Channel.py | 61 | self.data = data | COMMENT |
| LOW | Examples/Channel.py | 181 | reply_message = StringMessage("I received \""+message.data+"\" over the link") | COMMENT |
| LOW | Examples/Filetransfer.py | 1 | ########################################################## | COMMENT |
| LOW | Examples/Ratchets.py | 1 | ########################################################## | COMMENT |
| LOW | Examples/Ratchets.py | 161 | # echo request to the destination specified on the | COMMENT |
| LOW | Examples/ExampleInterface.py | 1 | # This example illustrates creating a custom interface | COMMENT |
| LOW | Examples/ExampleInterface.py | 101 | if port == None: | COMMENT |
| LOW | Examples/Minimal.py | 1 | ########################################################## | COMMENT |
| LOW | Examples/Speedtest.py | 1 | ########################################################## | COMMENT |
| 158 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CRNS/__init__.py | 25 | CODE | |
| LOW | tests/link.py | 8 | CODE | |
| LOW | tests/link.py | 18 | CODE | |
| LOW | tests/channel.py | 1 | CODE | |
| LOW | tests/__init__.py | 25 | CODE | |
| LOW | tests/all.py | 3 | CODE | |
| LOW | tests/all.py | 4 | CODE | |
| LOW | tests/all.py | 5 | CODE | |
| LOW | tests/all.py | 6 | CODE | |
| LOW | tests/all.py | 7 | CODE | |
| LOW | Examples/Link.py | 6 | CODE | |
| LOW | Examples/Channel.py | 7 | CODE | |
| LOW | Examples/Request.py | 6 | CODE | |
| LOW | Examples/ExampleInterface.py | 19 | CODE | |
| LOW | Examples/Buffer.py | 6 | CODE | |
| LOW | Examples/Buffer.py | 7 | CODE | |
| LOW | Examples/Buffer.py | 11 | CODE | |
| LOW | Examples/Buffer.py | 14 | CODE | |
| LOW | Examples/Identify.py | 6 | CODE | |
| LOW | RNS/Destination.py | 32 | CODE | |
| LOW | RNS/Transport.py | 35 | CODE | |
| LOW | RNS/Reticulum.py | 52 | CODE | |
| LOW | RNS/Reticulum.py | 58 | CODE | |
| LOW | RNS/Reticulum.py | 59 | CODE | |
| LOW | RNS/Reticulum.py | 47 | CODE | |
| LOW | RNS/Channel.py | 31 | CODE | |
| LOW | RNS/__init__.py | 42 | CODE | |
| LOW | RNS/__init__.py | 43 | CODE | |
| LOW | RNS/__init__.py | 44 | CODE | |
| LOW | RNS/__init__.py | 45 | CODE | |
| LOW | RNS/__init__.py | 45 | CODE | |
| LOW | RNS/__init__.py | 45 | CODE | |
| LOW | RNS/__init__.py | 46 | CODE | |
| LOW | RNS/__init__.py | 47 | CODE | |
| LOW | RNS/__init__.py | 48 | CODE | |
| LOW | RNS/__init__.py | 50 | CODE | |
| LOW | RNS/__init__.py | 51 | CODE | |
| LOW | RNS/__init__.py | 52 | CODE | |
| LOW | RNS/__init__.py | 52 | CODE | |
| LOW | RNS/__init__.py | 53 | CODE | |
| LOW | RNS/__init__.py | 54 | CODE | |
| LOW | RNS/Buffer.py | 31 | CODE | |
| LOW | RNS/Buffer.py | 33 | CODE | |
| LOW | RNS/Identity.py | 31 | CODE | |
| LOW | RNS/Identity.py | 35 | CODE | |
| LOW | RNS/Identity.py | 36 | CODE | |
| LOW | RNS/Cryptography/Token.py | 32 | CODE | |
| LOW | RNS/Cryptography/__init__.py | 34 | CODE | |
| LOW | RNS/Cryptography/__init__.py | 35 | CODE | |
| LOW | RNS/Cryptography/__init__.py | 36 | CODE | |
| LOW | RNS/Cryptography/__init__.py | 37 | CODE | |
| LOW | RNS/Cryptography/__init__.py | 38 | CODE | |
| LOW | RNS/Cryptography/__init__.py | 39 | CODE | |
| LOW | RNS/Cryptography/__init__.py | 44 | CODE | |
| LOW | RNS/Cryptography/__init__.py | 44 | CODE | |
| LOW | RNS/Cryptography/__init__.py | 45 | CODE | |
| LOW | RNS/Cryptography/__init__.py | 45 | CODE | |
| LOW | RNS/Cryptography/__init__.py | 48 | CODE | |
| LOW | RNS/Cryptography/__init__.py | 49 | CODE | |
| LOW | RNS/Cryptography/__init__.py | 50 | CODE | |
| 74 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/channel.py | 78 | def set_packet_timeout_callback(self, packet: Packet, callback: Callable[[Packet], None] | None, | CODE |
| LOW | tests/channel.py | 82 | def set_packet_delivered_callback(self, packet: Packet, callback: Callable[[Packet], None] | None): | CODE |
| LOW | tests/channel.py | 268 | def test_send_on_failing_outlet_does_not_corrupt_state(self): | CODE |
| LOW | tests/channel.py | 350 | def test_system_message_check(self): | CODE |
| LOW | tests/channel.py | 415 | def test_send_receive_message_test(self): | CODE |
| LOW | tests/channel.py | 427 | def test_buffer_small_bidirectional(self): | CODE |
| LOW | tests/channel.py | 494 | def test_buffer_small_with_callback(self): | CODE |
| LOW | tests/hashes.py | 17 | def test_less_than_block_length(self): | CODE |
| LOW | tests/hashes.py | 73 | def test_less_than_block_length(self): | CODE |
| LOW | docs/markdown/examples.md | 2563 | def resource_sending_concluded(resource): | CODE |
| LOW⚡ | Examples/Resource.py | 211 | def resource_concluded_sending(resource): | CODE |
| LOW | Examples/Filetransfer.py | 171 | def resource_sending_concluded(resource): | CODE |
| LOW⚡ | RNS/Link.py | 1225 | def set_resource_started_callback(self, callback): | CODE |
| LOW⚡ | RNS/Link.py | 1234 | def set_resource_concluded_callback(self, callback): | CODE |
| LOW⚡ | RNS/Link.py | 1243 | def set_remote_identified_callback(self, callback): | CODE |
| LOW⚡ | RNS/Link.py | 1412 | def response_resource_progress(self, resource): | CODE |
| LOW | RNS/Link.py | 885 | def request_resource_concluded(self, resource): | CODE |
| LOW | RNS/Link.py | 897 | def response_resource_concluded(self, resource): | CODE |
| LOW | RNS/Link.py | 1193 | def set_link_established_callback(self, callback): | CODE |
| LOW | RNS/Link.py | 1273 | def register_outgoing_resource(self, resource): | CODE |
| LOW | RNS/Link.py | 1276 | def register_incoming_resource(self, resource): | CODE |
| LOW | RNS/Link.py | 1362 | def request_resource_concluded(self, resource): | CODE |
| LOW | RNS/Destination.py | 133 | def app_and_aspects_from_name(full_name): | CODE |
| LOW | RNS/Destination.py | 141 | def hash_from_name_and_identity(full_name, identity): | CODE |
| LOW | RNS/Destination.py | 332 | def set_link_established_callback(self, callback): | CODE |
| LOW | RNS/Destination.py | 350 | def set_proof_requested_callback(self, callback): | CODE |
| LOW | RNS/Destination.py | 400 | def deregister_request_handler(self, path): | CODE |
| LOW | RNS/Discovery.py | 97 | def get_interface_announce_data(self, interface): | CODE |
| LOW | RNS/Discovery.py | 468 | def list_discovered_interfaces(self, only_available=False, only_transport=False): | CODE |
| LOW | RNS/Discovery.py | 656 | def bootstrap_interface_count(self): | CODE |
| LOW⚡ | RNS/Transport.py | 3167 | def interface_to_shared_instance(interface): | CODE |
| LOW | RNS/Transport.py | 1044 | def handle_disovery_path_requests(): | CODE |
| LOW | RNS/Transport.py | 1065 | def handle_outgoing_announces(outgoing): | CODE |
| LOW | RNS/Transport.py | 2390 | def tunnel_synthesize_handler(data, packet): | CODE |
| LOW | RNS/Transport.py | 2549 | def register_announce_handler(handler): | CODE |
| LOW | RNS/Transport.py | 2564 | def deregister_announce_handler(handler): | CODE |
| LOW | RNS/Transport.py | 2761 | def next_hop_interface_bitrate(destination_hash): | CODE |
| LOW | RNS/Transport.py | 2767 | def next_hop_interface_hw_mtu(destination_hash): | CODE |
| LOW | RNS/Transport.py | 2782 | def next_hop_per_byte_latency(destination_hash): | CODE |
| LOW | RNS/Transport.py | 3155 | def is_local_client_interface(interface): | CODE |
| LOW | RNS/Transport.py | 3237 | def shared_connection_disappeared(): | CODE |
| LOW | RNS/Transport.py | 3252 | def shared_connection_reappeared(): | CODE |
| LOW | RNS/Transport.py | 3272 | def timebase_from_random_blob(random_blob): | CODE |
| LOW | RNS/Transport.py | 3276 | def timebase_from_random_blobs(random_blobs): | CODE |
| LOW⚡ | RNS/Reticulum.py | 1154 | def _default_ic_max_held_announces(self): | CODE |
| LOW⚡ | RNS/Reticulum.py | 1160 | def _default_ic_burst_freq_new(self): | CODE |
| LOW⚡ | RNS/Reticulum.py | 1166 | def _default_ic_pr_burst_freq_new(self): | CODE |
| LOW⚡ | RNS/Reticulum.py | 1169 | def _default_ic_pr_burst_freq(self): | CODE |
| LOW⚡ | RNS/Reticulum.py | 1328 | def _unretain_destination_data(self, destination_hash): | CODE |
| LOW⚡ | RNS/Reticulum.py | 1839 | def interface_discovery_sources(): | CODE |
| LOW⚡ | RNS/Reticulum.py | 1849 | def should_autoconnect_discovered_interfaces(): | CODE |
| LOW⚡ | RNS/Reticulum.py | 1853 | def autoconnect_interface_mode(): | CODE |
| LOW⚡ | RNS/Reticulum.py | 1857 | def autoconnect_interface_gravity(): | CODE |
| LOW⚡ | RNS/Reticulum.py | 1861 | def autoconnect_announces_to_internal(): | CODE |
| LOW⚡ | RNS/Reticulum.py | 1865 | def max_autoconnected_interfaces(): | CODE |
| LOW⚡ | RNS/Reticulum.py | 1869 | def static_transport_identity(): | CODE |
| LOW | RNS/Reticulum.py | 1181 | def _default_ic_burst_penalty(self): | CODE |
| LOW | RNS/Reticulum.py | 1184 | def _default_ic_held_release_interval(self): | CODE |
| LOW | RNS/Reticulum.py | 1696 | def get_blackholed_identities(self): | CODE |
| LOW | RNS/Reticulum.py | 1742 | def should_use_implicit_proof(): | CODE |
| 55 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/manual/examples.html | 903 | <span class="c1"># This function is called when our reply destination</span> | CODE |
| MEDIUM | docs/manual/examples.html | 943 | <span class="c1"># This function is called if a packet times out.</span> | CODE |
| MEDIUM | docs/manual/examples.html | 1228 | <span class="c1"># This function is called when a link</span> | CODE |
| MEDIUM | docs/manual/examples.html | 1463 | <span class="c1"># Create a new client identity</span> | CODE |
| MEDIUM | docs/manual/examples.html | 1546 | <span class="c1"># This function is called when a link</span> | CODE |
| MEDIUM | docs/manual/examples.html | 1849 | <span class="c1"># This function is called when a link</span> | CODE |
| MEDIUM | docs/manual/examples.html | 2232 | <span class="c1"># This function is called when a link</span> | CODE |
| MEDIUM | docs/manual/examples.html | 2561 | <span class="c1"># This function is called when a link</span> | CODE |
| MEDIUM | docs/manual/examples.html | 2829 | <span class="c1"># This function is called on the server when a</span> | CODE |
| MEDIUM | docs/manual/examples.html | 3096 | <span class="c1"># This function is called when a link</span> | CODE |
| MEDIUM | docs/manual/examples.html | 3540 | <span class="c1"># This method handles serial port disconnects.</span> | CODE |
| MEDIUM | Examples/Link.py | 203 | # This function is called when a link | COMMENT |
| MEDIUM | Examples/Channel.py | 297 | # This function is called when a link | COMMENT |
| MEDIUM | Examples/Request.py | 207 | # This function is called when a link | COMMENT |
| MEDIUM⚡ | Examples/Resource.py | 215 | # This function is called when a link | COMMENT |
| MEDIUM | Examples/Filetransfer.py | 169 | # This function is called on the server when a | COMMENT |
| MEDIUM | Examples/Filetransfer.py | 436 | # This function is called when a link | COMMENT |
| MEDIUM | Examples/Ratchets.py | 226 | # This function is called when our reply destination | COMMENT |
| MEDIUM | Examples/Ratchets.py | 266 | # This function is called if a packet times out. | COMMENT |
| MEDIUM | Examples/ExampleInterface.py | 270 | # This method handles serial port disconnects. | COMMENT |
| MEDIUM | Examples/Buffer.py | 230 | # This function is called when a link | COMMENT |
| MEDIUM | Examples/Speedtest.py | 228 | # This function is called when a link | COMMENT |
| MEDIUM | Examples/Identify.py | 141 | # Create a new client identity | COMMENT |
| MEDIUM | Examples/Identify.py | 224 | # This function is called when a link | COMMENT |
| MEDIUM | Examples/Echo.py | 217 | # This function is called when our reply destination | COMMENT |
| MEDIUM | Examples/Echo.py | 257 | # This function is called if a packet times out. | COMMENT |
| MEDIUM | RNS/Resource.py | 245 | # Create a resource for transmission to a remote destination | COMMENT |
| MEDIUM | RNS/Resource.py | 1005 | # Define the search scope | COMMENT |
| MEDIUM | RNS/Utilities/rnsh/protocol.py | 101 | # Create a version of RNS.Buffer.StreamDataMessage that we control | COMMENT |
| MEDIUM | RNS/Interfaces/RNodeMultiInterface.py | 181 | # Create an array with a row for each subinterface | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/manual/interfaces.html | 798 | <span class="w"> </span><span class="c1"># Set frequency to 867.2 MHz</span> | CODE |
| LOW | docs/manual/interfaces.html | 882 | <span class="w"> </span><span class="c1"># Set frequency to 2.4GHz</span> | CODE |
| LOW | docs/manual/interfaces.html | 924 | <span class="w"> </span><span class="c1"># Set frequency to 865.6 MHz</span> | CODE |
| LOW | docs/manual/examples.html | 1152 | <span class="c1"># Check if we know a path to the destination</span> | CODE |
| LOW | docs/manual/examples.html | 1205 | <span class="c1"># Check if we should quit the example</span> | CODE |
| LOW | docs/manual/examples.html | 1470 | <span class="c1"># Check if we know a path to the destination</span> | CODE |
| LOW | docs/manual/examples.html | 1523 | <span class="c1"># Check if we should quit the example</span> | CODE |
| LOW | docs/manual/examples.html | 1769 | <span class="c1"># Check if we know a path to the destination</span> | CODE |
| LOW | docs/manual/examples.html | 1817 | <span class="c1"># Check if we should quit the example</span> | CODE |
| LOW | docs/manual/examples.html | 2155 | <span class="c1"># Check if we know a path to the destination</span> | CODE |
| LOW | docs/manual/examples.html | 2203 | <span class="c1"># Check if we should quit the example</span> | CODE |
| LOW | docs/manual/examples.html | 2496 | <span class="c1"># Check if we know a path to the destination</span> | CODE |
| LOW | docs/manual/examples.html | 2544 | <span class="c1"># Check if we should quit the example</span> | CODE |
| LOW | docs/manual/examples.html | 2761 | <span class="c1"># Check if the served directory still exists</span> | CODE |
| LOW | docs/manual/examples.html | 2893 | <span class="c1"># Check if we know a path to the destination</span> | CODE |
| LOW | Examples/Link.py | 127 | # Check if we know a path to the destination | COMMENT |
| LOW | Examples/Link.py | 180 | # Check if we should quit the example | COMMENT |
| LOW | Examples/Channel.py | 220 | # Check if we know a path to the destination | COMMENT |
| LOW | Examples/Channel.py | 268 | # Check if we should quit the example | COMMENT |
| LOW | Examples/Request.py | 127 | # Check if we know a path to the destination | COMMENT |
| LOW | Examples/Request.py | 175 | # Check if we should quit the example | COMMENT |
| LOW | Examples/Resource.py | 135 | # Check if we know a path to the destination | COMMENT |
| LOW | Examples/Resource.py | 183 | # Check if we should quit the example | COMMENT |
| LOW | Examples/Filetransfer.py | 101 | # Check if the served directory still exists | COMMENT |
| LOW | Examples/Filetransfer.py | 233 | # Check if we know a path to the destination | COMMENT |
| LOW | Examples/Buffer.py | 165 | # Check if we know a path to the destination | COMMENT |
| LOW | Examples/Buffer.py | 213 | # Check if we should quit the example | COMMENT |
| LOW | Examples/Speedtest.py | 182 | # Check if we know a path to the destination | COMMENT |
| LOW | Examples/Identify.py | 148 | # Check if we know a path to the destination | COMMENT |
| LOW | Examples/Identify.py | 201 | # Check if we should quit the example | COMMENT |
| LOW | RNS/Transport.py | 1137 | # Check if we have a known path for the destination in the path table | COMMENT |
| LOW | RNS/Transport.py | 1776 | # Check if this is a next retransmission from | COMMENT |
| LOW | RNS/Transport.py | 1800 | # Check if this announce should be inserted into | COMMENT |
| LOW | RNS/Transport.py | 2271 | # Check if we can deliver it to a local pending link | COMMENT |
| LOW | RNS/Transport.py | 2337 | # Check if this proof needs to be transported | COMMENT |
| LOW | RNS/Identity.py | 567 | # Check if we already have a public key for this destination | COMMENT |
| LOW | RNS/Utilities/rnsd.py | 455 | # Set frequency to 867.2 MHz | COMMENT |
| LOW | RNS/Utilities/rngit/util.py | 761 | # Check if word alone exceeds width to force break it | COMMENT |
| LOW | RNS/Utilities/rngit/util.py | 793 | # Check if word fits on current line | COMMENT |
| LOW | RNS/Utilities/rngit/pages.py | 1917 | # Check if it's actually a tree | COMMENT |
| LOW | RNS/Utilities/rngit/pages.py | 1989 | # Check if it's a tree via ls-tree | COMMENT |
| LOW | RNS/Utilities/rngit/pages.py | 1998 | # Check if it's a symlink via ls-tree | COMMENT |
| LOW | RNS/Utilities/rngit/pages.py | 2121 | # Check if it's an annotated tag | COMMENT |
| LOW | RNS/Utilities/rngit/pages.py | 2243 | # Check if file exists in parent | COMMENT |
| LOW | RNS/Utilities/rngit/pages.py | 2249 | # Check if file exists in current commit | COMMENT |
| LOW | RNS/Utilities/rngit/pages.py | 2655 | # Check if pixel overlaps this category | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/markdown/examples.md | 2165 | # In this example, both the reader and the writer | COMMENT |
| HIGH | docs/manual/examples.html | 2432 | <span class="c1"># In this example, both the reader and the writer</span> | CODE |
| HIGH | Examples/Ratchets.py | 50 | # path to store ratchets. In this example, we will just | COMMENT |
| HIGH | Examples/Buffer.py | 101 | # In this example, both the reader and the writer | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Examples/ExampleInterface.py | 37 | CODE | |
| LOW | RNS/Link.py | 1319 | CODE | |
| LOW | RNS/Reticulum.py | 1092 | CODE | |
| LOW | RNS/Resource.py | 248 | CODE | |
| LOW | RNS/__init__.py | 168 | CODE | |
| LOW | RNS/Packet.py | 122 | CODE | |
| LOW | RNS/Utilities/rncp.py | 75 | CODE | |
| LOW | RNS/Utilities/rncp.py | 359 | CODE | |
| LOW | RNS/Utilities/rncp.py | 617 | CODE | |
| LOW | RNS/Utilities/rnstatus.py | 155 | CODE | |
| LOW | RNS/Utilities/rnodeconf.py | 139 | CODE | |
| LOW | RNS/Utilities/rnx.py | 326 | CODE | |
| LOW | RNS/Utilities/rnpath.py | 101 | CODE | |
| LOW | RNS/Utilities/rngit/server.py | 56 | CODE | |
| LOW | RNS/Utilities/rngit/highlight.py | 202 | CODE | |
| LOW | RNS/Utilities/rnsh/protocol.py | 76 | CODE | |
| LOW | RNS/Utilities/rnsh/listener.py | 120 | CODE | |
| LOW | RNS/Interfaces/WeaveInterface.py | 47 | CODE | |
| LOW | RNS/Interfaces/RNodeMultiInterface.py | 132 | CODE | |
| LOW | RNS/Interfaces/RNodeMultiInterface.py | 939 | CODE | |
| LOW | RNS/Interfaces/LocalInterface.py | 51 | CODE | |
| LOW | RNS/Interfaces/I2PInterface.py | 51 | CODE | |
| LOW | RNS/Interfaces/I2PInterface.py | 65 | CODE | |
| LOW | RNS/Interfaces/AX25KISSInterface.py | 58 | CODE | |
| LOW | RNS/Interfaces/TCPInterface.py | 53 | CODE | |
| LOW | RNS/Interfaces/TCPInterface.py | 67 | CODE | |
| LOW | RNS/Interfaces/BackboneInterface.py | 49 | CODE | |
| LOW | RNS/Interfaces/SerialInterface.py | 49 | CODE | |
| LOW | RNS/Interfaces/RNodeInterface.py | 105 | CODE | |
| LOW | RNS/Interfaces/KISSInterface.py | 58 | CODE | |
| LOW | RNS/Interfaces/PipeInterface.py | 52 | CODE | |
| LOW | RNS/Interfaces/Android/SerialInterface.py | 49 | CODE | |
| LOW | RNS/Interfaces/Android/RNodeInterface.py | 117 | CODE | |
| LOW | RNS/Interfaces/Android/KISSInterface.py | 58 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | RNS/Interfaces/WeaveInterface.py | 1027 | if not self._online or not self.owner: return false | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | RNS/Utilities/rngit/server.py | 1088 | # Step 1: Initialize release | COMMENT |
| LOW | RNS/Utilities/rngit/server.py | 1105 | # Step 2: Upload artifacts | COMMENT |
| LOW | RNS/Utilities/rngit/server.py | 1129 | # Step 3: Finalize release | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | RNS/Utilities/rngit/server.py | 1088 | # Step 1: Initialize release | COMMENT |
| LOW | RNS/Utilities/rngit/server.py | 1105 | # Step 2: Upload artifacts | COMMENT |
| LOW | RNS/Utilities/rngit/server.py | 1129 | # Step 3: Finalize release | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | RNS/Cryptography/Token.py | 88 | if not isinstance(data, bytes): raise TypeError("Token plaintext input must be bytes") | CODE |
| LOW | RNS/Cryptography/Token.py | 101 | if not isinstance(token, bytes): raise TypeError("Token must be bytes") | CODE |
| LOW | RNS/Cryptography/aes/aes256.py | 236 | __all__ = ["AES256"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | RNS/Utilities/rngit/server.py | 4963 | # Instead of IDENTITY_HASH, you can also use "all" or "none". | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/manual/examples.html | 2948 | <span class="c1"># We just create a packet containing the</span> | CODE |
| LOW | Examples/Filetransfer.py | 288 | # We just create a packet containing the | COMMENT |
| LOW | RNS/Utilities/rngit/server.py | 2155 | # idea here. Seems best to just set it initially on clone, and then | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | RNS/Link.py | 804 | def handle_request(self, request_id, unpacked_request): | CODE |