crates.io / ring / 0.17.14

ring 0.17.14

Source
https://github.com/briansmith/ring
Artifact scanned
ring-0.17.14.crate (crate · 1.4 MB · SHA-256 a4689e6c2294…)
Compared with
ring-0.17.13.crate (0 signals introduced since)
Files
220 scanned, 171 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 0 warn · 32 info
Scan time
12.9 s
LLM review
Reviewed by claude-haiku-5-5 (Anthropic): 18 of 18 warn and critical signals; 18 demoted to info.
Disclude version
4.3.0
Scanned (UTC)
2026-10-24 07:15

Signals

Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.

  1. info warn → info by review long-line src/aead/poly1305_test.txt:71:1

    line length 4104 characters (raw pass, confidence 0.65)

    Input = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16
    likely benign LLM, confidence 0.95 A long hex-encoded Poly1305 test input line in a test vector file.
    Reasoning

    Raw long-line signal on a test vector file. The snippet is a long hex Input value, which is typical of cryptographic known-answer test data. Raw findings have a high false-positive rate and nothing here suggests concealed code.

  2. info warn → info by review long-line src/aead/poly1305_test.txt:76:1

    line length 4106 characters (raw pass, confidence 0.65)

    Input = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16
    likely benign LLM, confidence 0.95 A long hex-encoded Poly1305 test input line in a test vector file.
    Reasoning

    Same long-line raw signal on a test vector file with a hex Input value. This is expected format for cryptographic test data and carries no execution or hiding behaviour.

  3. info warn → info by review long-line src/aead/poly1305_test.txt:81:1

    line length 4108 characters (raw pass, confidence 0.65)

    Input = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16
    likely benign LLM, confidence 0.95 A long hex-encoded Poly1305 test input line in a test vector file.
    Reasoning

    Same long-line raw signal on a test vector file. The hex Input value is consistent with known-answer test vectors and is not an obfuscated payload.

  4. info warn → info by review long-line src/aead/poly1305_test.txt:86:1

    line length 4110 characters (raw pass, confidence 0.65)

    Input = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16
    likely benign LLM, confidence 0.95 A long hex-encoded Poly1305 test input line in a test vector file.
    Reasoning

    Same long-line raw signal on a test vector file. The hex value is a test input and the finding reflects only line length.

  5. info warn → info by review long-line src/aead/poly1305_test.txt:91:1

    line length 4112 characters (raw pass, confidence 0.65)

    Input = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16
    likely benign LLM, confidence 0.95 A long hex-encoded Poly1305 test input line in a test vector file.
    Reasoning

    Same long-line raw signal on a test vector file. The hex Input is standard cryptographic test data, and line length alone is not malicious.

  6. info warn → info by review long-line src/aead/poly1305_test.txt:96:1

    line length 4114 characters (raw pass, confidence 0.65)

    Input = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16
    likely benign LLM, confidence 0.95 A long hex-encoded Poly1305 test input line in a test vector file.
    Reasoning

    Same long-line raw signal on a test vector file. The hex value matches the known-answer test pattern and shows no sign of hidden code.

  7. info warn → info by review long-line src/aead/poly1305_test.txt:101:1

    line length 4116 characters (raw pass, confidence 0.65)

    Input = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16
    likely benign LLM, confidence 0.95 A long hex-encoded Poly1305 test input line in a test vector file.
    Reasoning

    Same long-line raw signal on a test vector file. The content is a hex test input with no execution or encoding pipeline.

  8. info warn → info by review long-line src/aead/poly1305_test.txt:106:1

    line length 4118 characters (raw pass, confidence 0.65)

    Input = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16
    likely benign LLM, confidence 0.95 A long hex-encoded Poly1305 test input line in a test vector file.
    Reasoning

    Same long-line raw signal on a test vector file. The hex Input is consistent with a legitimate cryptographic test suite.

  9. info warn → info by review long-line src/aead/poly1305_test.txt:111:1

    line length 4120 characters (raw pass, confidence 0.65)

    Input = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16
    likely benign LLM, confidence 0.95 A long hex-encoded Poly1305 test input line in a test vector file.
    Reasoning

    Same long-line raw signal on a test vector file. The hex value is standard test data and the flag is driven only by length.

  10. info warn → info by review long-line src/aead/poly1305_test.txt:116:1

    line length 4122 characters (raw pass, confidence 0.65)

    Input = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16
    likely benign LLM, confidence 0.95 A long hex-encoded Poly1305 test input line in a test vector file.
    Reasoning

    Same long-line raw signal on a test vector file. The hex Input is a known-answer test value with no sign of concealment.

  11. info warn → info by review long-line src/aead/poly1305_test.txt:121:1

    line length 4124 characters (raw pass, confidence 0.65)

    Input = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16
    likely benign LLM, confidence 0.95 A long hex-encoded Poly1305 test input line in a test vector file.
    Reasoning

    Same long-line raw signal on a test vector file. The hex value is legitimate test data and the finding reflects line length only.

  12. info warn → info by review long-line src/aead/poly1305_test.txt:126:1

    line length 4126 characters (raw pass, confidence 0.65)

    Input = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16
    likely benign LLM, confidence 0.95 A long hexadecimal test input line in a Poly1305 known-answer test file.
    Reasoning

    Long hex input line in a test vector file for Poly1305; test vectors commonly contain long hex strings. Raw pass long-line signal is a known false-positive class here.

  13. info warn → info by review long-line src/aead/poly1305_test.txt:131:1

    line length 4128 characters (raw pass, confidence 0.65)

    Input = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16
    likely benign LLM, confidence 0.95 A long hexadecimal test input line in a Poly1305 known-answer test file.
    Reasoning

    Same long hex test vector pattern in a crypto test data file; no executable content or malicious indicators.

  14. info warn → info by review long-line src/aead/poly1305_test.txt:136:1

    line length 4130 characters (raw pass, confidence 0.65)

    Input = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16
    likely benign LLM, confidence 0.95 A long hexadecimal test input line in a Poly1305 known-answer test file.
    Reasoning

    Same long hex test vector pattern; benign test data.

  15. info warn → info by review long-line src/aead/poly1305_test.txt:141:1

    line length 4132 characters (raw pass, confidence 0.65)

    Input = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16
    likely benign LLM, confidence 0.95 A long hexadecimal test input line in a Poly1305 known-answer test file.
    Reasoning

    Same long hex test vector pattern; benign test data.

  16. info warn → info by review long-line src/aead/poly1305_test.txt:146:1

    line length 4134 characters (raw pass, confidence 0.65)

    Input = 248ac31085b6c2adaaa38259a0d7192c5c35d1bb4ef39ad94c38d1c82479e2dd2159a077024b0589bc8a20101b506f0a1ad0bbab76e83a83f1b94be6beae74e874cab692c5963a75436b776121ec9f62399a3e66b2d22707dae81933b6277f3c8516bcbe26dbbd86f373103d7cf4cad1888c952118fbfbd0d7b4bedc4ae4936aff91157e7aa47c54442ea78d6ac251d324a0fbe49d89cc3521b66d16
    likely benign LLM, confidence 0.95 A long hexadecimal test input line in a Poly1305 known-answer test file.
    Reasoning

    Same long hex test vector pattern; benign test data.

  17. info unicode-mixed-script src/arithmetic/bigint.rs:19:64

    identifier `mℤ` mixes scripts: Latin + Other (in string/comment) (raw pass, confidence 0.40)

    //!
    //! Modular arithmetic is done in finite commutative rings ℤ/mℤ for some
    //! modulus *m*. We work in finite commutative rings instead of finite fields
    //! because the RSA public modulus *n* is not prime, which means ℤ/nℤ contains
  18. info unicode-mixed-script src/arithmetic/bigint.rs:21:70

    identifier `nℤ` mixes scripts: Latin + Other (in string/comment) (raw pass, confidence 0.40)

    //! modulus *m*. We work in finite commutative rings instead of finite fields
    //! because the RSA public modulus *n* is not prime, which means ℤ/nℤ contains
    //! nonzero elements that have no multiplicative inverse, so ℤ/nℤ is not a
    //! finite field.
  19. info unicode-mixed-script src/arithmetic/bigint.rs:22:66

    identifier `nℤ` mixes scripts: Latin + Other (in string/comment) (raw pass, confidence 0.40)

    //! because the RSA public modulus *n* is not prime, which means ℤ/nℤ contains
    //! nonzero elements that have no multiplicative inverse, so ℤ/nℤ is not a
    //! finite field.
    //!
  20. info unicode-mixed-script src/arithmetic/bigint.rs:26:66

    identifier `nℤ` mixes scripts: Latin + Other (in string/comment) (raw pass, confidence 0.40)

    //! In some calculations we need to deal with multiple rings at once. For
    //! example, RSA private key operations operate in the rings ℤ/nℤ, ℤ/pℤ, and
    //! ℤ/qℤ. Types and functions dealing with such rings are all parameterized
    //! over a type `M` to ensure that we don't wrongly mix up the math, e.g. by
  21. info unicode-mixed-script src/arithmetic/bigint.rs:26:76

    identifier `pℤ` mixes scripts: Latin + Other (in string/comment) (raw pass, confidence 0.40)

    //! In some calculations we need to deal with multiple rings at once. For
    //! example, RSA private key operations operate in the rings ℤ/nℤ, ℤ/pℤ, and
    //! ℤ/qℤ. Types and functions dealing with such rings are all parameterized
    //! over a type `M` to ensure that we don't wrongly mix up the math, e.g. by
  22. info unicode-mixed-script src/arithmetic/bigint.rs:27:9

    identifier `qℤ` mixes scripts: Latin + Other (in string/comment) (raw pass, confidence 0.40)

    //! example, RSA private key operations operate in the rings ℤ/nℤ, ℤ/pℤ, and
    //! ℤ/qℤ. Types and functions dealing with such rings are all parameterized
    //! over a type `M` to ensure that we don't wrongly mix up the math, e.g. by
  23. info unicode-mixed-script src/arithmetic/bigint.rs:29:35

    identifier `pℤ` mixes scripts: Latin + Other (in string/comment) (raw pass, confidence 0.40)

    //! over a type `M` to ensure that we don't wrongly mix up the math, e.g. by
    //! multiplying an element of ℤ/pℤ by an element of ℤ/qℤ modulo q. This follows
    //! the "unit" pattern described in [Static checking of units in Servo].
    //!
  24. info unicode-mixed-script src/arithmetic/bigint.rs:29:61

    identifier `qℤ` mixes scripts: Latin + Other (in string/comment) (raw pass, confidence 0.40)

    //! over a type `M` to ensure that we don't wrongly mix up the math, e.g. by
    //! multiplying an element of ℤ/pℤ by an element of ℤ/qℤ modulo q. This follows
    //! the "unit" pattern described in [Static checking of units in Servo].
    //!
  25. info unicode-mixed-script src/arithmetic/bigint.rs:78:21

    identifier `mℤ` mixes scripts: Latin + Other (in string/comment) (raw pass, confidence 0.40)

    
    /// Elements of ℤ/mℤ for some modulus *m*.
    //
    // Defaulting `E` to `Unencoded` is a convenience for callers from outside this
  26. info unicode-mixed-script src/arithmetic/bigint/modulus.rs:27:36

    identifier `mℤ` mixes scripts: Latin + Other (in string/comment) (raw pass, confidence 0.40)

    
    /// The modulus *m* for a ring ℤ/mℤ, along with the precomputed values needed
    /// for efficient Montgomery multiplication modulo *m*. The value must be odd
    /// and larger than 2. The larger-than-1 requirement is imposed, at least, by
  27. info unicode-mixed-script src/ec/suite_b/ops.rs:27:45

    identifier `qℤ` mixes scripts: Latin + Other (in string/comment) (raw pass, confidence 0.40)

    
    /// A field element, i.e. an element of ℤ/qℤ for the curve's field modulus
    /// *q*.
    pub type Elem<E> = elem::Elem<Q, E>;
  28. info unicode-mixed-script src/ec/suite_b/ops/elem.rs:44:21

    identifier `mℤ` mixes scripts: Latin + Other (in string/comment) (raw pass, confidence 0.40)

    
    /// Elements of ℤ/mℤ for some modulus *m*. Elements are always fully reduced
    /// with respect to *m*; i.e. the 0 <= x < m for every value x.
    #[derive(Clone, Copy)]
  29. info unicode-mixed-script src/ec/suite_b/ops/elem.rs:51:42

    identifier `mℤ` mixes scripts: Latin + Other (in string/comment) (raw pass, confidence 0.40)

    
        /// The modulus *m* for the ring ℤ/mℤ for which this element is a value.
        pub(super) m: PhantomData<M>,
  30. line length 553 characters (raw pass, confidence 0.50)

    PublicKey("3082010a0282010100c8a78500a5a250db8ed36c85b8dcf83c4be1953114faaac7616e0ea24922fa6b7ab01f85582c815cc3bdeb5ed46762bc536accaa8b72705b00cef316b2ec508fb9697241b9e34238419cccf7339eeb8b062147af4f5932f613d9bc0ae70bf6d56d4432e83e13767587531bfa9dd56531741244be75e8bc9226b9fa44b4b8a101358d7e8bb75d0c724a4f11ece77776263fa
  31. info warn → info by review macro-keyword-override third_party/fiat/curve25519_64_msvc.h:24:1

    `#define FIAT_25519_FIAT_INLINE inline` aliases a C reserved keyword behind a non-keyword macro name (ast pass, confidence 0.85)

    
    #define FIAT_25519_FIAT_INLINE inline
    
    /* The type fiat_25519_loose_field_element is a field element with loose bounds. */
    likely benign LLM, confidence 0.90 A macro mapping FIAT_25519_FIAT_INLINE to the inline keyword in a generated crypto header for MSVC.
    Reasoning

    Fiat-crypto generated MSVC compatibility header defines FIAT_25519_FIAT_INLINE as inline so the code compiles on MSVC where the keyword differs; a standard portability idiom, not obfuscation.

  32. info warn → info by review macro-keyword-override third_party/fiat/p256_64_msvc.h:29:1

    `#define FIAT_P256_FIAT_INLINE inline` aliases a C reserved keyword behind a non-keyword macro name (ast pass, confidence 0.85)

    
    #define FIAT_P256_FIAT_INLINE inline
    
    /* The type fiat_p256_montgomery_domain_field_element is a field element in the Montgomery domain. */
    likely benign LLM, confidence 0.90 A macro mapping FIAT_P256_FIAT_INLINE to the inline keyword in a generated crypto header for MSVC.
    Reasoning

    Same generated fiat-crypto MSVC portability pattern mapping a macro to inline; expected in vendored cryptographic code.

Reproduce This Scan

Run disclude locally to verify. These commands scan the published file; the "new in this release" marks come from comparing it with the previous release's file, which they don't repeat. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.

cargo install disclude --version 4.3.0
curl -fsSL -o ring-0.17.14.crate 'https://static.crates.io/crates/ring/ring-0%2E17%2E14.crate'
printf '%s  %s\n' a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7 ring-0.17.14.crate | shasum -a 256 -c -
mkdir pkg && tar -xzf ring-0.17.14.crate -C pkg --strip-components 1
disclude scan --untrusted --severity info pkg