Home to the Signal Protocol as well as other cryptographic primitives which make Signal possible.
This report summarizes scanner evidence for signalapp/libsignal, a Rust project with 6,105 GitHub stars. SynthScan examined 409,210 lines of code across 1568 source files, recording 797 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 3.5 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 681 finding(s).
Are imports declared and package/API names verified? 62 finding(s).
Are wrappers, guards, and repeated structures necessary? 193 finding(s).
Which changes need focused human review? 797 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 797 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | rust/net/infra/src/route.rs | 1219 | && reflector.outer.inner.fragment.host_header.as_ref() | CODE |
| CRITICAL | rust/net/infra/src/route.rs | 1242 | && reflector.outer.inner.fragment.host_header.as_ref() | CODE |
| CRITICAL | rust/bridge/shared/src/net/svr2.rs | 181 | env.svr2.current.params.mr_enclave.as_ref(), | CODE |
| CRITICAL | rust/bridge/shared/src/net/svr2.rs | 331 | let current_mrenclave = env.svr2.current.params.mr_enclave.as_ref(); | CODE |
| CRITICAL | rust/attest/src/dcap.rs | 429 | let report_isvprodid = evidence.quote.support.qe_report_body.isvprodid.get(); | CODE |
| CRITICAL | rust/attest/src/dcap.rs | 438 | let qe_report_miscselect = evidence.quote.support.qe_report_body.miscselect.get(); | CODE |
| CRITICAL | rust/attest/src/dcap.rs | 469 | let report_isvsvn = evidence.quote.support.qe_report_body.isvsvn.get(); | CODE |
| CRITICAL | …/java/org/signal/libsignal/protocol/SessionCipher.java | 84 | return new org.signal.libsignal.protocol.state.internal.IdentityKeyStore() { | CODE |
| CRITICAL | …/java/org/signal/libsignal/protocol/SessionCipher.java | 125 | return new org.signal.libsignal.protocol.state.internal.SessionStore() { | CODE |
| CRITICAL | …/java/org/signal/libsignal/protocol/SessionCipher.java | 215 | new org.signal.libsignal.protocol.state.internal.PreKeyStore() { | CODE |
| CRITICAL | …/java/org/signal/libsignal/protocol/SessionCipher.java | 228 | new org.signal.libsignal.protocol.state.internal.SignedPreKeyStore() { | CODE |
| CRITICAL | …/java/org/signal/libsignal/protocol/SessionCipher.java | 237 | new org.signal.libsignal.protocol.state.internal.KyberPreKeyStore() { | CODE |
| CRITICAL | …/org/signal/libsignal/protocol/groups/GroupCipher.java | 47 | return new org.signal.libsignal.protocol.state.internal.SenderKeyStore() { | CODE |
| CRITICAL | …enchmarks/src/androidTest/java/ClientZkOperations.java | 32 | new org.signal.libsignal.zkgroup.auth.ClientZkAuthOperations(serverPublicParams); | CODE |
| CRITICAL | …ava/org/signal/libsignal/internal/NativeTestingNice.kt | 619 | org.signal.libsignal.net.MfaVerificationCredential.Totp( | CODE |
| CRITICAL | …ava/org/signal/libsignal/internal/NativeTestingNice.kt | 630 | org.signal.libsignal.net.MfaVerificationCredential.WebAuthn( | CODE |
| CRITICAL | …ava/org/signal/libsignal/internal/NativeTestingNice.kt | 1231 | org.signal.libsignal.zkgroup.profiles.ProfileKeyCredentialRequestContext( | CODE |
| CRITICAL | …ava/org/signal/libsignal/internal/NativeTestingNice.kt | 1533 | org.signal.libsignal.internal.MyNiceTypeEnum.Single( | CODE |
| CRITICAL | …ava/org/signal/libsignal/internal/NativeTestingNice.kt | 2181 | public fun org.signal.libsignal.internal.MyNiceTypeEnum.Unit.toFfiArgType(): MyNiceTypeEnumNot_Unit_FfiArgType = | CODE |
| CRITICAL | …ava/org/signal/libsignal/internal/NativeTestingNice.kt | 2196 | public fun org.signal.libsignal.internal.MyNiceTypeEnum.Single.toFfiArgType(): MyNiceTypeEnumNot_Single_FfiArgType = | CODE |
| CRITICAL | …ava/org/signal/libsignal/internal/NativeTestingNice.kt | 2201 | public fun org.signal.libsignal.internal.MyNiceTypeEnum.toFfiArgTypeObject(): Object = | CODE |
| CRITICAL⚡ | …ava/org/signal/libsignal/internal/NativeTestingNice.kt | 2214 | public fun org.signal.libsignal.internal.MyNiceTypeSimpleEnum.A.toFfiArgType(): MyNiceTypeSimpleEnumNot_A_FfiArgType = | CODE |
| CRITICAL⚡ | …ava/org/signal/libsignal/internal/NativeTestingNice.kt | 2220 | public fun org.signal.libsignal.internal.MyNiceTypeSimpleEnum.B.toFfiArgType(): MyNiceTypeSimpleEnumNot_B_FfiArgType = | CODE |
| CRITICAL⚡ | …ava/org/signal/libsignal/internal/NativeTestingNice.kt | 2223 | public fun org.signal.libsignal.internal.MyNiceTypeSimpleEnum.toFfiArgTypeObject(): Object = | CODE |
| CRITICAL | …ava/org/signal/libsignal/internal/NativeTestingNice.kt | 2248 | public fun org.signal.libsignal.internal.MyNiceTypeStruct.toFfiArgType(): MyNiceTypeStructNot_FfiArgType = | CODE |
| CRITICAL | …ava/org/signal/libsignal/internal/NativeTestingNice.kt | 2254 | public fun org.signal.libsignal.internal.MyNiceTypeStruct.toFfiArgTypeObject(): Object = | CODE |
| CRITICAL⚡ | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1077 | public fun org.signal.libsignal.net.BadgeVisibility.DoNotSet.toFfiArgType(): BadgeVisibility_DoNotSet_FfiArgType = | CODE |
| CRITICAL⚡ | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1083 | public fun org.signal.libsignal.net.BadgeVisibility.SetVisible.toFfiArgType(): BadgeVisibility_SetVisible_FfiArgType = | CODE |
| CRITICAL⚡ | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1089 | public fun org.signal.libsignal.net.BadgeVisibility.SetPrimary.toFfiArgType(): BadgeVisibility_SetPrimary_FfiArgType = | CODE |
| CRITICAL⚡ | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1092 | public fun org.signal.libsignal.net.BadgeVisibility.toFfiArgTypeObject(): Object = | CODE |
| CRITICAL⚡ | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1426 | public fun org.signal.libsignal.net.LoginReceiptLevel.Normal.toFfiArgType(): LoginReceiptLevel_Normal_FfiArgType = | CODE |
| CRITICAL⚡ | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1432 | public fun org.signal.libsignal.net.LoginReceiptLevel.Sandbox.toFfiArgType(): LoginReceiptLevel_Sandbox_FfiArgType = | CODE |
| CRITICAL⚡ | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1435 | public fun org.signal.libsignal.net.LoginReceiptLevel.toFfiArgTypeObject(): Object = | CODE |
| CRITICAL⚡ | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1448 | public fun org.signal.libsignal.net.PaymentProvider.GooglePlayBilling.toFfiArgType(): PaymentProvider_GooglePlayBilling_ | CODE |
| CRITICAL⚡ | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1454 | public fun org.signal.libsignal.net.PaymentProvider.AppleAppStore.toFfiArgType(): PaymentProvider_AppleAppStore_FfiArgTy | CODE |
| CRITICAL⚡ | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1460 | public fun org.signal.libsignal.net.PaymentProvider.Stripe.toFfiArgType(): PaymentProvider_Stripe_FfiArgType = | CODE |
| CRITICAL⚡ | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1466 | public fun org.signal.libsignal.net.PaymentProvider.Braintree.toFfiArgType(): PaymentProvider_Braintree_FfiArgType = | CODE |
| CRITICAL⚡ | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1469 | public fun org.signal.libsignal.net.PaymentProvider.toFfiArgTypeObject(): Object = | CODE |
| CRITICAL | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 959 | org.signal.libsignal.net.ListBackupMediaResponse.Item( | CODE |
| CRITICAL | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1133 | public fun org.signal.libsignal.net.CopyBackupMediaItem.toFfiArgType(): BridgeCopyBackupMediaItem_FfiArgType = | CODE |
| CRITICAL | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1142 | public fun org.signal.libsignal.net.CopyBackupMediaItem.toFfiArgTypeObject(): Object = | CODE |
| CRITICAL | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1162 | public fun org.signal.libsignal.net.DeleteBackupMediaItem.toFfiArgType(): BridgeDeleteBackupMediaItem_FfiArgType = | CODE |
| CRITICAL | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1168 | public fun org.signal.libsignal.net.DeleteBackupMediaItem.toFfiArgTypeObject(): Object = | CODE |
| CRITICAL | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1185 | public fun org.signal.libsignal.net.MfaVerificationCredential.Totp.toFfiArgType(): BridgeMfaVerificationCredential_Totp_ | CODE |
| CRITICAL | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1202 | public fun org.signal.libsignal.net.MfaVerificationCredential.WebAuthn.toFfiArgType(): BridgeMfaVerificationCredential_W | CODE |
| CRITICAL | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1207 | public fun org.signal.libsignal.net.MfaVerificationCredential.toFfiArgTypeObject(): Object = | CODE |
| CRITICAL | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1332 | public fun org.signal.libsignal.net.CallQualitySurvey.toFfiArgType(): CallQualitySurveyInternal_FfiArgType = | CODE |
| CRITICAL | …/main/java/org/signal/libsignal/internal/NativeNice.kt | 1361 | public fun org.signal.libsignal.net.CallQualitySurvey.toFfiArgTypeObject(): Object = | CODE |
| CRITICAL⚡ | node/ts/test/KeyTransparencyTest.ts | 153 | await expect(run(429)).to.be.rejected.and.eventually.have.property( | CODE |
| CRITICAL⚡ | node/ts/test/KeyTransparencyTest.ts | 159 | ).to.be.rejected.and.eventually.have.property( | CODE |
| CRITICAL⚡ | node/ts/test/KeyTransparencyTest.ts | 163 | await expect(run(500)).to.be.rejected.and.eventually.have.property( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bin/prepare_release.py | 161 | # Release Step 2: Tag the release commit. | COMMENT |
| LOW | rust/keytrans/src/left_balanced.rs | 1 | // | COMMENT |
| LOW | rust/keytrans/src/left_balanced.rs | 21 | //! / \ / \ | COMMENT |
| LOW | rust/keytrans/src/lib.rs | 301 | /// MonitoringData is the structure retained for each key in the KT server being | COMMENT |
| LOW | rust/keytrans/src/proto.rs | 1 | // | COMMENT |
| LOW | rust/keytrans/src/verify.rs | 261 | Some(verifying_key), | COMMENT |
| LOW | rust/keytrans/src/verify.rs | 1201 | ); | COMMENT |
| LOW | rust/keytrans/src/verify.rs | 1361 | // A counter increment that's only visible at a frontier proof (e.g. a | COMMENT |
| LOW | rust/net/infra/proptest-regressions/route/schedule.txt | 1 | # Seeds for failure cases proptest has generated in the past. It is | COMMENT |
| LOW | rust/net/infra/src/timeouts.rs | 1 | use std::time::Duration; | COMMENT |
| LOW | rust/net/infra/src/timeouts.rs | 21 | /// and one of them produced a result, we'll wait this time interval | COMMENT |
| LOW | rust/net/infra/src/certs.rs | 321 | let task = verifier.verify_server_cert(end_entity, intermediates, &host_as_server_name); | COMMENT |
| LOW | rust/net/infra/src/host.rs | 1 | // | COMMENT |
| LOW | rust/net/infra/src/route.rs | 1 | // | COMMENT |
| LOW | rust/net/infra/src/route.rs | 21 | //! | COMMENT |
| LOW | rust/net/infra/src/route.rs | 41 | //! # Route providers | COMMENT |
| LOW | rust/net/infra/src/route.rs | 61 | //! `Connector` implementations are often stateless, like `StatelessTcp`, but | COMMENT |
| LOW | rust/net/infra/src/route.rs | 121 | COMMENT | |
| LOW | rust/net/infra/src/route.rs | 161 | COMMENT | |
| LOW | rust/net/infra/src/route.rs | 281 | /// | COMMENT |
| LOW | rust/net/infra/src/ws.rs | 41 | /// This time is measured across calls to [`Connection::handle_next_event`] | COMMENT |
| LOW | rust/net/infra/src/route/proxy.rs | 81 | } | COMMENT |
| LOW | rust/net/infra/src/route/resolve.rs | 21 | UnresolvedHost, UsePreconnect, WebSocketRoute, | COMMENT |
| LOW | rust/net/infra/src/route/resolve.rs | 41 | fn resolve(self, lookup: impl FnMut(&str) -> IpAddr) -> Self::Resolved; | COMMENT |
| LOW | rust/net/infra/src/route/provider.rs | 1 | // | COMMENT |
| LOW | rust/net/infra/src/route/describe.rs | 21 | UnresolvedTransportRoute, UnresolvedWebsocketServiceRoute, UsesTransport, | COMMENT |
| LOW | rust/net/infra/src/route/describe.rs | 41 | /// to a [`WithLoggableDescription`] route. | COMMENT |
| LOW | rust/net/infra/src/route/schedule.rs | 61 | /// This is notionally a stream, though it doesn't (yet) implement [`Stream`]. | COMMENT |
| LOW | rust/net/infra/src/route/schedule.rs | 541 | max_delay, | COMMENT |
| LOW | rust/net/infra/src/route/schedule.rs | 561 | // | COMMENT |
| LOW | rust/net/infra/src/route/http.rs | 21 | #[derive(Clone, Debug, PartialEq, Eq, Hash)] | COMMENT |
| LOW | rust/net/infra/src/route/connect/logging.rs | 1 | // | COMMENT |
| LOW | rust/net/infra/src/route/connect/composed.rs | 1 | // | COMMENT |
| LOW | rust/net/infra/src/route/connect/throttle.rs | 41 | /// Replaces the inner `Connector` in `self`. | COMMENT |
| LOW | rust/net/infra/src/route/connect/preconnect.rs | 1 | // | COMMENT |
| LOW | rust/net/infra/src/utils/binary_heap.rs | 41 | COMMENT | |
| LOW | rust/net/infra/src/dns/custom_resolver.rs | 41 | const MAX_CACHE_TTL: Duration = Duration::from_secs(5 * 60); | COMMENT |
| LOW | rust/net/infra/src/dns/dns_types.rs | 1 | // | COMMENT |
| LOW | rust/net/infra/src/dns/dns_types.rs | 21 | #[derive(Clone, Copy)] | COMMENT |
| LOW | rust/net/infra/src/dns/dns_message.rs | 61 | } | COMMENT |
| LOW | rust/net/infra/src/ws/attested.rs | 21 | /// Encrypted connection to an attested host. | COMMENT |
| LOW | rust/net/infra/src/ws/connection.rs | 21 | COMMENT | |
| LOW | rust/net/infra/src/ws/connection.rs | 41 | /// This should implement [`Stream`] and [`Sink`](futures_util::Sink) for websocket | COMMENT |
| LOW | rust/net/infra/src/ws/connection.rs | 101 | /// | COMMENT |
| LOW | rust/net/infra/src/ws/connection.rs | 121 | #[strum(serialize_all = "lowercase")] | COMMENT |
| LOW | rust/net/infra/src/ws/connection.rs | 141 | Io(IoError), | COMMENT |
| LOW | rust/net/infra/src/ws/connection.rs | 201 | /// | COMMENT |
| LOW | …t/net/chat/examples/register_account_without_number.rs | 1 | // | COMMENT |
| LOW | rust/net/chat/examples/chat_request_scaffold.rs | 1 | // | COMMENT |
| LOW | rust/net/chat/src/logging.rs | 221 | #[test_case("" => "")] | COMMENT |
| LOW | rust/net/chat/src/grpc.rs | 181 | /// || Ok(SomeRequest { id: validate_id(id_param)? }), | COMMENT |
| LOW | rust/net/chat/src/grpc.rs | 201 | /// tonic request APIs return Futures themselves, wrapping with an extra `async move {}` is the | COMMENT |
| LOW | rust/net/chat/src/stream_util.rs | 101 | /// interval. Returns what's been collected when | COMMENT |
| LOW | rust/net/chat/src/api.rs | 81 | COMMENT | |
| LOW | rust/net/chat/src/ws.rs | 321 | } | COMMENT |
| LOW | rust/net/chat/src/registration/service.rs | 61 | /// Describes how to make an unauthenticated [`ChatConnection`]. | COMMENT |
| LOW | rust/net/chat/src/grpc/keys.rs | 41 | pub aci_ec_pre_key_count: u32, | COMMENT |
| LOW | rust/net/chat/src/grpc/keytrans.rs | 681 | } | COMMENT |
| LOW | rust/net/chat/src/grpc/call_quality.rs | 61 | /// for video streams | COMMENT |
| LOW | rust/net/chat/src/grpc/call_quality.rs | 81 | /// a group call) | COMMENT |
| 453 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bin/prepare_release.py | 117 | def get_workflow_name_mapping(repo_name: str) -> dict[int, str]: | CODE |
| LOW | bin/prepare_release.py | 357 | def check_gh_installed_and_authed() -> None: | CODE |
| LOW | …ridge/node/futures/tests-node-module/src/store_like.rs | 85 | // function doubleNameFromStoreUsingJoin(store: { getName: () => Promise<string> }): Promise<string> | COMMENT |
| LOW | java/check_code_size.py | 25 | def measure_stripped_library_size(lib_path: str) -> int: | CODE |
| LOW | java/check_code_size.py | 53 | def current_origin_main_entry() -> Optional[Mapping[str, Any]]: | CODE |
| LOW | node/build_node_bridge.py | 24 | def check_for_debug_level_logs(src_path: str) -> None: | CODE |
| LOW | node/build_node_bridge.py | 32 | def check_for_attest_testutil(src_path: str) -> None: | CODE |
| LOW | node/ts/NiceConverters.ts | 28 | export function cdnCredentialReturnConverter( | CODE |
| LOW | node/ts/NiceConverters.ts | 36 | export function copyBackupMediaStreamConverter( | CODE |
| LOW | node/ts/NiceConverters.ts | 49 | export function deleteBackupMediaStreamConverter( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 813 | export function returnConverterBackupEntitlement( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 822 | export function returnConverterBadgeEntitlement( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 832 | export function returnConverterBadgeVisibility( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 922 | export function returnConverterBridgeDeleteBackupMediaItem( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 931 | export function returnConverterBridgeMediaBackupInfo( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 941 | export function returnConverterBridgeMessageBackupInfo( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 951 | export function returnConverterBridgeMfaKeyKind( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 1680 | export function returnConverterListMediaArgs( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 1689 | export function returnConverterListMediaItem( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 1699 | export function returnConverterListMediaOut( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 1880 | export function returnConverterMyTestPoint( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 1886 | export function returnConverterMyTestStruct( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 1895 | export function returnConverterPaymentProvider( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 2052 | export function returnConverterReportMessageArgs( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 2062 | export function returnConverterReserveUsernameHashArgs( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 2070 | export function returnConverterReserveUsernameHashOut( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 2103 | export function returnConverterServerPublicParamsSerialized( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 2111 | export function returnConverterSetCapabilitiesArgs( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 2120 | export function returnConverterSetDeviceNameArgs( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 2129 | export function returnConverterSetDeviceNameOut( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 2192 | export function returnConverterSetOneTimeKemPreKeysArgs( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 2202 | export function returnConverterSetSignedEcPreKeyArgs( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 2211 | export function returnConverterSetUsernameLinkArgs( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 2220 | export function returnConverterSetUsernameLinkOut( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 2303 | export function returnConverterTestStreamChunk( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 2312 | export function returnConverterTestingAnySignedPreKey( | CODE |
| LOW⚡ | node/ts/NativeNice.ts | 2322 | export function argConverterBadgeVisibility( | CODE |
| LOW | node/ts/NativeNice.ts | 786 | export function returnConverterAccountEntitlements( | CODE |
| LOW | node/ts/NativeNice.ts | 796 | export function returnConverterAuthCheckResult( | CODE |
| LOW | node/ts/NativeNice.ts | 849 | export function returnConverterBridgeConfirmedMfaKey( | CODE |
| LOW | node/ts/NativeNice.ts | 859 | export function returnConverterBridgeConfirmedMfaKeyMetadata( | CODE |
| LOW | node/ts/NativeNice.ts | 878 | export function returnConverterBridgeCopyBackupMediaItem( | CODE |
| LOW | node/ts/NativeNice.ts | 890 | export function returnConverterBridgeCopyBackupMediaOutcome( | CODE |
| LOW | node/ts/NativeNice.ts | 899 | export function returnConverterBridgeCopyBackupMediaResult( | CODE |
| LOW | node/ts/NativeNice.ts | 968 | export function returnConverterBridgeMfaMetadata( | CODE |
| LOW | node/ts/NativeNice.ts | 977 | export function returnConverterBridgeMfaVerificationCredential( | CODE |
| LOW | node/ts/NativeNice.ts | 997 | export function returnConverterBridgePendingTotpKey( | CODE |
| LOW | node/ts/NativeNice.ts | 1006 | export function returnConverterBridgePreKeyCounts( | CODE |
| LOW | node/ts/NativeNice.ts | 1017 | export function returnConverterBridgeTotpParameters( | CODE |
| LOW | node/ts/NativeNice.ts | 1027 | export function returnConverterBridgeWebAuthnAuthenticationParameters( | CODE |
| LOW | node/ts/NativeNice.ts | 1039 | export function returnConverterBridgeWebAuthnCreateParameters( | CODE |
| LOW | node/ts/NativeNice.ts | 1053 | export function returnConverterCallQualitySurveyInternal( | CODE |
| LOW | node/ts/NativeNice.ts | 1102 | export function returnConverterCheckSvrCredentialsArgs( | CODE |
| LOW | node/ts/NativeNice.ts | 1111 | export function returnConverterConfirmTotpKeyArgs( | CODE |
| LOW | node/ts/NativeNice.ts | 1122 | export function returnConverterConfirmTotpKeyOut( | CODE |
| LOW | node/ts/NativeNice.ts | 1141 | export function returnConverterConfirmUsernameArgs( | CODE |
| LOW | node/ts/NativeNice.ts | 1150 | export function returnConverterConfirmUsernameOut( | CODE |
| LOW | node/ts/NativeNice.ts | 1169 | export function returnConverterCopyBackupMediaNextChunk( | CODE |
| LOW | node/ts/NativeNice.ts | 1179 | export function returnConverterCopyBackupMediaOut( | CODE |
| LOW | node/ts/NativeNice.ts | 1200 | export function returnConverterCreateDonationPermitsArgs( | CODE |
| 79 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | rust/protocol/tests/tahini.rs | 21 | // ── TahiniWorld harness ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/tests/tahini.rs | 92 | // ── Helpers for checking / establishing sessions ────────────────────── | COMMENT |
| MEDIUM | rust/protocol/tests/tahini.rs | 120 | // ── Send helpers ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/tests/tahini.rs | 164 | // ── Deliver helpers ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/tests/tahini.rs | 216 | // ── Session record accessors ────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/tests/tahini.rs | 239 | // ── Archive helpers ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/tests/tahini.rs | 261 | // ── Key comparison ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/tests/tahini.rs | 287 | // ── Session (re)initiation ──────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/tests/tahini.rs | 335 | // ── Converge ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/tests/tahini.rs | 372 | // ── Scenario tests ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/tests/tahini.rs | 853 | // ── Replay / seen-base-key ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/tests/tahini.rs | 1014 | // ── Property-based tests ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/src/session_management.rs | 41 | // ── Public API ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/src/session_management.rs | 560 | // ── Session management (Tahini) ────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/src/session_management.rs | 610 | // ── Try active session ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/src/session_management.rs | 658 | // ── Try archived sessions (Whisper only, NO promotion) ─────────────────── | COMMENT |
| MEDIUM | rust/protocol/src/session_management.rs | 756 | // ── Per-session decrypt ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/src/session_management.rs | 807 | // ── Logging helpers ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/src/double_ratchet.rs | 24 | // ── State ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/src/double_ratchet.rs | 57 | // ── Serialization bridge ────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/src/double_ratchet.rs | 171 | // ── Operations ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/src/double_ratchet.rs | 255 | // ── Internals ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/src/tahini.rs | 45 | // ── Policy constants ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/src/tahini.rs | 51 | // ── Types ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/src/tahini.rs | 76 | // ── Send path ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/src/tahini.rs | 90 | // ── Receive path ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/src/tahini.rs | 159 | // ── Session establishment ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/src/pqxdh.rs | 94 | // ── Initiator ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/src/pqxdh.rs | 238 | // ── Recipient ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/src/state/session.rs | 25 | // ── Error types ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rust/protocol/src/state/session.rs | 864 | // ── Tahini session management ─────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …/org/signal/libsignal/net/UnauthMessagesServiceTest.kt | 0 | { "missingdevices": [4, 5], "extradevices": [40, 50] } | STRING |
| HIGH | …va/org/signal/libsignal/net/AuthMessagesServiceTest.kt | 0 | { "missingdevices": [4, 5], "extradevices": [40, 50] } | STRING |
| HIGH | …lientTests/ChatServices/AuthMessagesServiceTests.swift | 0 | { "missingdevices": [4, 5], "extradevices": [40, 50] } | STRING |
| HIGH | …entTests/ChatServices/UnauthMessagesServiceTests.swift | 0 | { "missingdevices": [4, 5], "extradevices": [40, 50] } | STRING |
| HIGH | …va/org/signal/libsignal/net/AuthMessagesServiceTest.kt | 0 | { "cdn":123, "key":"abcde", "headers":{"one":"val1","two":"val2"}, "signeduploadlocation":"http://example.org/upload" } | STRING |
| HIGH | …a/org/signal/libsignal/net/UnauthBackupsServiceTest.kt | 0 | { "cdn":123, "key":"abcde", "headers":{"one":"val1","two":"val2"}, "signeduploadlocation":"http://example.org/upload" } | STRING |
| HIGH | …lientTests/ChatServices/AuthMessagesServiceTests.swift | 0 | { "cdn":123, "key":"abcde", "headers":{"one":"val1","two":"val2"}, "signeduploadlocation":"http://example.org/upload" } | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | bin/prepare_release.py | 94 | print(f'Error: command {e.cmd} exited with status {e.returncode}.') | CODE |
| LOW | bin/prepare_release.py | 102 | except Exception as ex: | CODE |
| MEDIUM⚡ | bin/prepare_release.py | 286 | print(f"Error: You are on branch '{current_branch}'.") | CODE |
| MEDIUM⚡ | bin/prepare_release.py | 294 | print('Error: Git working tree is not clean! This can cause unexpected behavior, as this script commits to G | CODE |
| MEDIUM⚡ | bin/prepare_release.py | 304 | print('Error: Git working tree is not clean! This can cause unexpected behavior, as this script commits to G | CODE |
| MEDIUM⚡ | bin/prepare_release.py | 313 | print(f'Error: {release_notes_file_path} not found. Cannot proceed with release.') | CODE |
| MEDIUM | bin/prepare_release.py | 363 | print('Error: GitHub CLI (gh) is not installed. Please install it and re-run.') | CODE |
| MEDIUM | bin/prepare_release.py | 392 | print(f'Error while running command: {cmd}') | CODE |
| MEDIUM | bin/prepare_release.py | 420 | print(f"Error: Could not find a matching '{workflow_name}' run for commit {head_sha}.") | CODE |
| MEDIUM | bin/prepare_release.py | 444 | print(f'Error: Could not parse JSON for run {selected_run_id}.') | CODE |
| MEDIUM | bin/prepare_release.py | 450 | print(f"Error: '{workflow_name}' did not succeed (status={status}, conclusion={conclusion}).") | CODE |
| MEDIUM | bin/prepare_release.py | 466 | print(f"Error: version string '{version_str}' is not in 'vMAJOR.MINOR.PATCH' format.") | CODE |
| MEDIUM | bin/prepare_release.py | 479 | print(f'Error: {filepath} not found.') | CODE |
| LOW | java/check_code_size.py | 86 | except Exception as e: | CODE |
| MEDIUM | java/check_code_size.py | 53 | def current_origin_main_entry() -> Optional[Mapping[str, Any]]: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | rust/protocol/src/state/session.rs | 541 | // Don't forget to clean up new pending fields. | COMMENT |
| LOW | …a/org/signal/libsignal/crypto/Aes256GcmEncryption.java | 51 | * <p>Don't forget to call {@link #computeTag} when encryption is complete. | COMMENT |
| LOW | …a/org/signal/libsignal/crypto/Aes256GcmEncryption.java | 62 | * <p>Don't forget to call {@link #computeTag} when encryption is complete. | COMMENT |
| LOW | …a/org/signal/libsignal/crypto/Aes256GcmDecryption.java | 51 | * <p>Don't forget to call {@link #verifyTag} when decryption is complete. | COMMENT |
| LOW | …a/org/signal/libsignal/crypto/Aes256GcmDecryption.java | 64 | * <p>Don't forget to call {@link #verifyTag} when decryption is complete. | COMMENT |
| LOW | …nal/libsignal/messagebackup/OnlineBackupValidator.java | 17 | * decryption and decompression steps, but that also means it's validating less. Don't forget to | COMMENT |
| LOW | swift/Sources/LibSignalClient/MessageBackup.swift | 169 | /// This is much faster than using `validateMessageBackup(...)` because it bypasses the decryption and decompression ste | COMMENT |
| LOW | swift/Sources/LibSignalClient/Aes256Gcm.swift | 166 | /// Don't forget to call ``computeTag()`` when encryption is complete. | COMMENT |
| LOW | swift/Sources/LibSignalClient/Aes256Gcm.swift | 255 | /// Don't forget to call ``verifyTag(_:)`` when decryption is complete. | COMMENT |
| LOW | node/ts/MessageBackup.ts | 165 | * steps, but that also means it's validating less. Don't forget to call `finalize()`! | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | rust/net/chat/src/grpc/messages.rs | 932 | let fake_token = structurally_valid_group_send_token(); | CODE |
| LOW | rust/net/chat/src/grpc/messages.rs | 938 | MultiRecipientSendAuthorization::Group(fake_token), | CODE |
| LOW | rust/net/chat/src/ws/messages.rs | 779 | let fake_token = structurally_valid_group_send_token(); | CODE |
| LOW | rust/net/chat/src/ws/messages.rs | 797 | UserBasedSendAuthorization::User(UserBasedAuthorization::Group(fake_token)), | CODE |
| LOW | rust/net/chat/src/ws/messages.rs | 1272 | let fake_token = structurally_valid_group_send_token(); | CODE |
| LOW | rust/net/chat/src/ws/messages.rs | 1277 | MultiRecipientSendAuthorization::Group(fake_token), | CODE |
| LOW | rust/message-backup/src/unknown.rs | 223 | fn fake_data() -> Self { | CODE |
| LOW⚡ | rust/message-backup/src/unknown.rs | 271 | proto::TestMessage::fake_data(), | CODE |
| LOW⚡ | rust/message-backup/src/unknown.rs | 272 | proto::TestMessage::fake_data().wire_cast_as::<proto::TestMessage>(), | CODE |
| LOW⚡ | rust/message-backup/src/unknown.rs | 273 | proto::TestMessage::fake_data().wire_cast_as::<proto::TestMessageWithExtraFields>(), | CODE |
| LOW | rust/message-backup/src/unknown.rs | 349 | proto::TestMessage::fake_data().wire_cast_as::<proto::TestMessageWithExtraFields>(); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | rust/keytrans/src/log.rs | 411 | // Step 1: Verify that the consistency proof aligns with m_root. | COMMENT |
| LOW | rust/keytrans/src/log.rs | 445 | // Step 2: Verify that the consistency proof aligns with n_root. | COMMENT |
| LOW⚡ | rust/protocol/src/sealed_sender.rs | 2104 | // Step 1: temporarily add a new field to the .proto. | COMMENT |
| LOW⚡ | rust/protocol/src/sealed_sender.rs | 2114 | // Step 2: Add `some_fake_field: None` to the above construction of | COMMENT |
| LOW⚡ | rust/protocol/src/sealed_sender.rs | 2117 | // Step 3: Serialize and print out the new fixture data (uncomment the following) | COMMENT |
| LOW | rust/protocol/src/sealed_sender.rs | 2153 | // Step 4: update the following fixture data with the new values from above. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | rust/keytrans/src/log.rs | 411 | // Step 1: Verify that the consistency proof aligns with m_root. | COMMENT |
| LOW | rust/keytrans/src/log.rs | 445 | // Step 2: Verify that the consistency proof aligns with n_root. | COMMENT |
| LOW⚡ | rust/protocol/src/sealed_sender.rs | 2104 | // Step 1: temporarily add a new field to the .proto. | COMMENT |
| LOW⚡ | rust/protocol/src/sealed_sender.rs | 2114 | // Step 2: Add `some_fake_field: None` to the above construction of | COMMENT |
| LOW⚡ | rust/protocol/src/sealed_sender.rs | 2117 | // Step 3: Serialize and print out the new fixture data (uncomment the following) | COMMENT |
| LOW | rust/protocol/src/sealed_sender.rs | 2153 | // Step 4: update the following fixture data with the new values from above. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Cargo.toml | 253 | # When building libsignal, just use our forks so we don't end up with two different versions of the libraries. | COMMENT |
| MEDIUM | rust/net/infra/src/route/connect/interface_monitor.rs | 45 | /// Essentially an [`AsyncFn`] with a few extra constraints. We would need `async_fn_traits` to | COMMENT |
| MEDIUM | swift/Sources/LibSignalClient/DataStoreProtocols.swift | 21 | /// Essentially `Any`, but still able to catch typos when calling something that uses stores. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …st/bridge/shared/types/src/support/transform_helper.rs | 18 | /// Extracts the value from the TransformHelper and transforms it as requested. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bin/run_with_network_isolation.sh | 5 | # Usage: | COMMENT |
| LOW | swift/Sources/LibSignalClient/KeyTransparency.swift | 118 | /// Example usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | rust/bridge/jni/impl/src/logging.rs | 104 | // ID are worth not having the guardrails. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bin/update_versions.py | 27 | def update_version(file: str, pattern: re.Pattern[str], new_version: str) -> None: | CODE |