PyPI / pycryptodome / 4.1.0

pycryptodome 4.1.0

Source
https://github.com/Legrandin/pycryptodome
Artifact scanned
pycryptodome-4.1.0.tar.gz (sdist · 1.6 MB · SHA-256 3fff8aab4d99…)
Compared with
pycryptodome-4.0.1.tar.gz (3 signals introduced since)
Files
480 scanned, 48 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 1 warn · 85 info
Scan time
46.7 s
LLM review
Reviewed by claude-haiku-5-5 (Anthropic): 55 of 55 warn and critical signals; 54 demoted to info.
Disclude version
4.3.0
Scanned (UTC)
2026-10-23 11:09

Signals

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

  1. warn identifier-confusable-collision src/ghash_portable.c:175:19

    two identifiers collapse to visual skeleton `|o` (0/O/o and 1/l/I are confusable) (token pass, confidence 0.80)

        const word_t a[3] = { y[0], y[1], y[0] ^ y[1] };
        word_t ar[3], lo[3], hi[3];
    
        /** Their reflections (by linearity for the third one) **/
    likely benign LLM, confidence 0.60 Two short variable names in a GHASH implementation that fold to the same visual skeleton.
    Reasoning

    Two identifiers that look alike after confusable folding are a common accidental naming collision in cryptographic code with short variable names like lo, hi and ar. The snippet shows only ordinary GHASH arithmetic and no sign of homoglyph-based code hiding. Some residual doubt remains, since the collision could be deliberate.

  2. info warn → info by review encoding-base64 lib/Crypto/SelfTest/IO/test_PKCS8.py:726:9 new in this release

    base64-like blob (156 bytes over 3 lines, compression ratio 0.95) (raw pass, confidence 0.60)

        rfc8410 = """
            MHICAQEwBQYDK2VwBCIEINTuctv5E1hK1bbY8fdp+K06/nwoy/HU++CXqI9EdVhC
            oB8wHQYKKoZIhvcNAQkJFDEPDA1DdXJkbGUgQ2hhaXJzgSEAGb9ECWmEzf6FQbrB
            Z9w7lshQhqowtrbLDFw4rXAxZuE="""
    likely benign LLM, confidence 0.95 RFC 8410 PKCS#8 key test vector encoded in base64 inside a test.
    Reasoning

    The base64 text is an RFC 8410 test vector for a PKCS#8 key, stored as a multi-line string in a test module. This is standard test data.

  3. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_ECC.py:2937:1 new in this release

    base64-like blob (156 bytes over 3 lines, compression ratio 0.95) (raw pass, confidence 0.60)

        encoded = """-----BEGIN PRIVATE KEY-----
    MHICAQEwBQYDK2VwBCIEINTuctv5E1hK1bbY8fdp+K06/nwoy/HU++CXqI9EdVhC
    oB8wHQYKKoZIhvcNAQkJFDEPDA1DdXJkbGUgQ2hhaXJzgSEAGb9ECWmEzf6FQbrB
    Z9w7lshQhqowtrbLDFw4rXAxZuE=
    dismissed LLM, confidence 0.93 PKCS#8 PEM private key fixture used in an encoding test.
    Reasoning

    A PKCS#8 PRIVATE KEY (Ed25519/curve-style OID) PEM block in an encoding test. The base64 is a standard key container, so the flag is a false positive.

  4. info long-line src/mldsa-native/README.md:23:1 new in this release

    line length 712 characters (raw pass, confidence 0.50)

    If you want to support multiple parameter sets, build the library once per parameter set you want to support. Set `MLD_CONFIG_MULTILEVEL_BUILD` for all builds, `MLD_CONFIG_MULTILEVEL_WITH_SHARED` for one of them, and `MLD_CONFIG_MULTILEVEL_NO_SHARED` for the others, to avoid duplicating shared functionality. Finally, l
  5. info critical → info by review dynamic-execution Doc/conf.py:99:25

    `eval` at module scope (runs on import) on a non-literal expression (ast pass, confidence 0.80)

        if line.startswith("version_info"):
            version_tuple = eval(line.split("=")[1])
    
    version = "%d.%d" % version_tuple[:-1]
    likely benign LLM, confidence 0.80 Docs build script evaluates a version tuple read from a version_info line.
    Reasoning

    Module-scope eval on a line split from a version_info assignment is a known pattern for reading a version tuple from a header file in a docs build script. The input is a local source file rather than network or user data, so it looks like a fragile but legitimate parse, not a dropper.

  6. info warn → info by review encoding-base64 INSTALL.rst:170:2

    base64-like blob (2949 bytes over 47 lines, compression ratio 0.76) (raw pass, confidence 0.60)

     
     mQINBFTXjPgBEADc3j7vnma9MXRshBPPXXenVpthQD6lrF/3XaBT2RptSf/viOD+
     tz85du5XVp+r0SYYGeMNJCQ9NsztxblN/lnKgkfWRmSrB+V6QGS+e3bR5d9OIxzN
     7haPxBnyRj//hCT/kKis6fa7N9wtwKBBjbaSX+9vpt7Rrt203sKfcChA4iR3EG89
    likely benign LLM, confidence 0.90 Base64-encoded PGP public key embedded in INSTALL.rst documentation.
    Reasoning

    The base64 block is a PGP public key block in a reStructuredText install guide. Its line structure and content fit an embedded key, which is ordinary documentation content.

  7. base64-like blob (66 bytes, compression ratio 0.86) (outside string/comment) (raw pass, confidence 0.30)

        order = 0x1000000000000000000000000000000014DEF9DEA2F79CD65812631A5CF5D3ED
        Gx = 0x216936D3CD6E53FEC0A4E231FDD6DC5C692CC7609525A7B2C9562D608F25D51A
        Gy = 0x6666666666666666666666666666666666666666666666666666666666666658
  8. base64-like blob (66 bytes, compression ratio 0.86) (outside string/comment) (raw pass, confidence 0.30)

        p = 0xFFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
        b = 0x5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B
        order = 0xFFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551
        Gx = 0x6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296
  9. info critical → info by review dynamic-import lib/Crypto/SelfTest/Cipher/test_CTR.py:429:18

    `__import__` called on a non-literal expression (ast pass, confidence 0.90)

            # The threaded code is the same for all ciphers: same output as without threads
            module = __import__("Crypto.Cipher." + name, fromlist=["new"])
            key = {"DES": b"k" * 8, "DES3": DES3.adjust_key_parity(get_tag_random("key_des3", 24))}.get(
                name, b"k" * 16
    likely benign LLM, confidence 0.90 Self-test dynamically imports a Crypto.Cipher module chosen from a test loop variable.
    Reasoning

    This is a self-test that imports cipher modules by name from a fixed list of cipher names. The dynamic import is a test-harness convenience with no external input.

  10. info warn → info by review encoding-base64 lib/Crypto/SelfTest/Cipher/test_pkcs1_15.py:67:1

    base64-like blob (812 bytes over 13 lines, compression ratio 0.79) (raw pass, confidence 0.60)

                """-----BEGIN RSA PRIVATE KEY-----
    MIICXAIBAAKBgQDAiAnvIAOvqVwJTaYzsKnefZftgtXGE2hPJppGsWl78yz9jeXY
    W/FxX/gTPURArNhdnhP6n3p2ZaDIBrO2zizbgIXs0IsljTTcr4vnI8fMXzyNUOjA
    zP3nzMqZDZK6757XQAobOssMkBFqRWwilT/3DsBhRpl3iMUhF+wvpTSHewIDAQAB
    likely benign LLM, confidence 0.95 Test-vector RSA private key in PEM form inside a self-test.
    Reasoning

    The block is a PEM-armored RSA private key used as a fixed test vector inside a test string, which is expected in a cryptography library's test suite.

  11. info warn → info by review dynamic-attribute lib/Crypto/SelfTest/Hash/test_HMAC.py:567:36

    reach-by-name through `globals` (ast pass, confidence 0.60)

                t[2] = row[2][modname]
                t.append({"digestmod": globals()[modname]})
                exp_test_data.append(t)
        return exp_test_data
    likely benign LLM, confidence 0.90 Test builder looks up a digestmod object by name through globals().
    Reasoning

    globals() lookup of a digest module name is a simple way to build a parametrized test table from names in the test file. It does not hide behaviour and the names come from the test's own data.

  12. info warn → info by review payload-bytes-literal lib/Crypto/SelfTest/Math/test_Numbers.py:704:18

    bytes literal contains 38 `\xNN` escapes (85% of content) — binary payload shape (ast pass, confidence 0.85)

            t2 = 17**100
            expect = b"\xfa\xb2\x11\x87\xc3(y\x07\xf8\xf1n\xdepq\x0b\xca\xf3\xd3B,\xef\xf2\xfbf\xcc)\x8dZ*\x95\x98r\x96\xa8\xd5\xc3}\xe2q:\xa2'z\xf48\xde%\xef\t\x07\xbc\xc4[C\x8bUE2\x90\xef\x81\xaa:\x08"
            assert expect == modmult(t1, t2, modulus)
    likely benign LLM, confidence 0.92 Expected binary output bytes for a modular multiplication test assertion.
    Reasoning

    The bytes literal is an expected modular-multiplication output, a large-integer result written as escapes. Binary-looking constants like this are normal in arithmetic test vectors.

  13. identifier `ΔημοσιεύθηκεστηνΕφημερίδατης` contains homoglyph candidates: η (03B7)→n, ο (03BF)→o, η (03B7)→n, κ (03BA)→k (in string/comment) (raw pass, confidence 0.35)

                ("ΔημοσιεύθηκεστηνΕφημερίδατης", 4, b"E5SQtS6P4568MDXW7cyUp.", b"$2a$04$E5SQtS6P4568MDXW7cyUp.18wfDisKZBxifnPZjAI1d/KTYMfHPYO"),
  14. identifier `ΔημοσιεύθηκεστηνΕφημερίδατης` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

                ("ΔημοσιεύθηκεστηνΕφημερίδατης", 4, b"E5SQtS6P4568MDXW7cyUp.", b"$2a$04$E5SQtS6P4568MDXW7cyUp.18wfDisKZBxifnPZjAI1d/KTYMfHPYO"),
  15. info critical → info by review dynamic-import lib/Crypto/SelfTest/Protocol/test_KDF.py:1028:12

    `__import__` called on a non-literal expression (ast pass, confidence 0.90)

    def load_hash_by_name(hash_name):
        return __import__("Crypto.Hash." + hash_name, globals(), locals(), ["new"])
    likely benign LLM, confidence 0.90 Test helper dynamically imports a Crypto.Hash module by name.
    Reasoning

    The helper loads a Crypto.Hash submodule by name, with the name coming from the test's own calls. This is a standard test utility and nothing here is attacker-controlled.

  16. info warn → info by review encoding-base64 lib/Crypto/SelfTest/Protocol/test_ecdh.py:239:38

    4 rows of base64-like lines, lines 239-242 (first: base64-like blob (65 bytes, compression ratio 1.17)) (raw pass, confidence 0.60)

        static_priv = ECC.import_key(
            "-----BEGIN PRIVATE KEY-----\nMIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg9VHFVKh2a1aVFifH\n+BiyNaRa2kttEg3165Ye/dJxJ7KhRANCAARImIEXro5ZOcyWU2mq/+d79FEZXtTA\nbKkz1aICQXihQdCMzRNbeNtC9LFLzhu1slRKJ2xsDAlw9r6w6vwtkRzr\n-----END PRIVATE KEY-----"
        )
    likely benign LLM, confidence 0.95 ECC private key PEM test vector in an ECDH self-test.
    Reasoning

    This is a PEM-encoded ECC private key used as a fixed test vector for ECDH in a cryptography test suite.

  17. info warn → info by review encoding-base64 lib/Crypto/SelfTest/Protocol/test_ecdh.py:246:38

    base64-like blob (65 bytes, compression ratio 1.17) (raw pass, confidence 0.60)

        eph_priv = ECC.import_key(
            "-----BEGIN PRIVATE KEY-----\nMIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgGPdJmFFFKzLPspIr\nE1T2cEjeIf4ajS9CpneP0e2b3AyhRANCAAQBexAA5BYDcXHs2KOksTYUsst4HhPt\nkp0zkgI2virc3OGJFNGPaCCPfFCQJHwLRaEpiq3SoQlgoBwSc8ZPsl3y\n-----END PRIVATE KEY-----"
        )
    likely benign LLM, confidence 0.95 Ephemeral ECC private key PEM test vector in an ECDH self-test.
    Reasoning

    This is a PEM-encoded ephemeral ECC private key used as a fixed test vector for ECDH in a cryptography test suite.

  18. info warn → info by review encoding-base64 lib/Crypto/SelfTest/Protocol/test_ecdh.py:246:104

    base64-like blob (65 bytes, compression ratio 1.17) (raw pass, confidence 0.60)

        eph_priv = ECC.import_key(
            "-----BEGIN PRIVATE KEY-----\nMIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgGPdJmFFFKzLPspIr\nE1T2cEjeIf4ajS9CpneP0e2b3AyhRANCAAQBexAA5BYDcXHs2KOksTYUsst4HhPt\nkp0zkgI2virc3OGJFNGPaCCPfFCQJHwLRaEpiq3SoQlgoBwSc8ZPsl3y\n-----END PRIVATE KEY-----"
        )
    likely benign LLM, confidence 0.95 Second ephemeral ECC private key PEM test vector in an ECDH self-test.
    Reasoning

    Same ephemeral PEM test vector as the adjacent finding on the same line, used in an ECDH test case.

  19. info warn → info by review encoding-base64 lib/Crypto/SelfTest/Protocol/test_ecdh.py:250:38

    base64-like blob (65 bytes, compression ratio 1.17) (raw pass, confidence 0.60)

        eph_pub = ECC.import_key(
            "-----BEGIN PRIVATE KEY-----\nMIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQghaVZXElSEGEojFKF\nOU0JCpxWUWHvWQUR81gwWrOp76ShRANCAATi1Ib2K+YR3AckD8wxypWef7pw5PRw\ntBaB3RDPyE7IjHZC6yu1DbcXoCdtaw+F5DM+4zpl59n5ZaIy/Yl1BdIy\n-----END PRIVATE KEY-----"
        )
    likely benign LLM, confidence 0.95 ECC public/private key PEM test vector in an ECDH self-test.
    Reasoning

    This is a PEM-encoded ECC key used as a fixed test vector in an ECDH self-test. Test keys like this are expected in the suite.

  20. info warn → info by review encoding-base64 lib/Crypto/SelfTest/Protocol/test_ecdh.py:250:104

    base64-like blob (65 bytes, compression ratio 1.17) (raw pass, confidence 0.60)

        eph_pub = ECC.import_key(
            "-----BEGIN PRIVATE KEY-----\nMIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQghaVZXElSEGEojFKF\nOU0JCpxWUWHvWQUR81gwWrOp76ShRANCAATi1Ib2K+YR3AckD8wxypWef7pw5PRw\ntBaB3RDPyE7IjHZC6yu1DbcXoCdtaw+F5DM+4zpl59n5ZaIy/Yl1BdIy\n-----END PRIVATE KEY-----"
        )
    likely benign LLM, confidence 0.93 Inline PEM EC private key test vector in an ECDH self-test.
    Reasoning

    The base64 blob is a PEM-encoded EC private key used as a test vector in PyCryptodome's ECDH self-tests. Key material in a crypto library's test suite is expected, and the raw-pass base64 signal has a high false-positive rate.

  21. 12 rows of base64-like lines, lines 19-30 (first: base64-like blob (66 bytes, compression ratio 0.88) (outside string/comment)) (raw pass, confidence 0.30)

        (1, 9),
        (2, 0x20D342D51873F1B7D9750C687D1571148F3F5CED1E350B5C5CAE469CDD684EFB),
        (3, 0x1C12BC1A6D57ABE645534D91C21BBA64F8824E67621C0859C00A03AFFB713C12),
        (4, 0x79CE98B7E0689D7DE7D1D074A15B315FFE1805DFCD5D2A230FEE85E4550013EF),
  22. base64-like blob (66 bytes, compression ratio 0.88) (outside string/comment) (raw pass, confidence 0.30)

    class TestEccPoint_Curve25519:
        v1 = 0x09FA78B39B00A72930BCD8039BE789A0997830BB99F79AEEB93493715390B4E8
        v2 = 0x15210F12786811D3F4B7959D0538AE2C31DBE7106FC03C3EFC4CD549C715A493
  23. base64-like blob (66 bytes, compression ratio 0.88) (outside string/comment) (raw pass, confidence 0.30)

        v1 = 0x09FA78B39B00A72930BCD8039BE789A0997830BB99F79AEEB93493715390B4E8
        v2 = 0x15210F12786811D3F4B7959D0538AE2C31DBE7106FC03C3EFC4CD549C715A493
    
        def test_init(self):
  24. base64-like blob (66 bytes, compression ratio 0.88) (outside string/comment) (raw pass, confidence 0.30)

    class TestEccPoint_Curve448:
        v1 = 0x09FA78B39B00A72930BCD8039BE789A0997830BB99F79AEEB93493715390B4E8
        v2 = 0x15210F12786811D3F4B7959D0538AE2C31DBE7106FC03C3EFC4CD549C715A493
  25. base64-like blob (66 bytes, compression ratio 0.88) (outside string/comment) (raw pass, confidence 0.30)

        v1 = 0x09FA78B39B00A72930BCD8039BE789A0997830BB99F79AEEB93493715390B4E8
        v2 = 0x15210F12786811D3F4B7959D0538AE2C31DBE7106FC03C3EFC4CD549C715A493
    
        def test_init(self):
  26. base64-like blob (66 bytes, compression ratio 0.88) (outside string/comment) (raw pass, confidence 0.30)

        pointS = EccPoint(
            0xDE2444BEBC8D36E682EDD27E0F271508617519B3221A8FA0B77CAB3989DA97C9,
            0xC093AE7FF36E5380FC01A5AAD1E66659702DE80F53CEC576B6350B243042A256,
        )
  27. base64-like blob (66 bytes, compression ratio 0.91) (outside string/comment) (raw pass, confidence 0.30)

            0xDE2444BEBC8D36E682EDD27E0F271508617519B3221A8FA0B77CAB3989DA97C9,
            0xC093AE7FF36E5380FC01A5AAD1E66659702DE80F53CEC576B6350B243042A256,
        )
  28. base64-like blob (66 bytes, compression ratio 0.91) (outside string/comment) (raw pass, confidence 0.30)

        pointT = EccPoint(
            0x55A8B00F8DA1D44E62F6B3B25316212E39540DC861C89575BB8CF92E35E0986B,
            0x5421C3209C2D6C704835D82AC4C3DD90F61A8A52598B9E7AB656E9D8C8B24316,
        )
  29. base64-like blob (66 bytes, compression ratio 0.86) (outside string/comment) (raw pass, confidence 0.30)

            0x55A8B00F8DA1D44E62F6B3B25316212E39540DC861C89575BB8CF92E35E0986B,
            0x5421C3209C2D6C704835D82AC4C3DD90F61A8A52598B9E7AB656E9D8C8B24316,
        )
  30. base64-like blob (66 bytes, compression ratio 0.86) (outside string/comment) (raw pass, confidence 0.30)

        def test_addition(self):
            pointRx = 0x72B13DD4354B6B81745195E98CC5BA6970349191AC476BD4553CF35A545A067E
            pointRy = 0x8D585CBB2E1327D75241A8A122D7620DC33B13315AA5C9D46D013011744AC264
  31. base64-like blob (66 bytes, compression ratio 0.86) (outside string/comment) (raw pass, confidence 0.30)

        def test_inplace_addition(self):
            pointRx = 0x72B13DD4354B6B81745195E98CC5BA6970349191AC476BD4553CF35A545A067E
            pointRy = 0x8D585CBB2E1327D75241A8A122D7620DC33B13315AA5C9D46D013011744AC264
  32. base64-like blob (66 bytes, compression ratio 0.86) (outside string/comment) (raw pass, confidence 0.30)

        def test_doubling(self):
            pointRx = 0x7669E6901606EE3BA1A8EEF1E0024C33DF6C22F3B17481B82A860FFCDB6127B0
            pointRy = 0xFA878162187A54F6C39F6EE0072F33DE389EF3EECD03023DE10CA2C1DB61D0C7
  33. base64-like blob (66 bytes, compression ratio 0.89) (outside string/comment) (raw pass, confidence 0.30)

            pointRx = 0x7669E6901606EE3BA1A8EEF1E0024C33DF6C22F3B17481B82A860FFCDB6127B0
            pointRy = 0xFA878162187A54F6C39F6EE0072F33DE389EF3EECD03023DE10CA2C1DB61D0C7
    
            pointR = self.pointS.copy()
  34. base64-like blob (66 bytes, compression ratio 0.88) (outside string/comment) (raw pass, confidence 0.30)

            d = 0xC51E4753AFDEC1E6B6C6A5B992F43F8DD0C7A8933072708B6522468B2FFB06FD
            pointRx = 0x51D08D5F2D4278882946D88D83C97D11E62BECC3CFC18BEDACC89BA34EECA03F
            pointRy = 0x75EE68EB8BF626AA5B673AB51F6E744E06F8FCF8A6C0CF3035BECA956A7B41D5
  35. base64-like blob (66 bytes, compression ratio 0.86) (outside string/comment) (raw pass, confidence 0.30)

            pointRx = 0x51D08D5F2D4278882946D88D83C97D11E62BECC3CFC18BEDACC89BA34EECA03F
            pointRy = 0x75EE68EB8BF626AA5B673AB51F6E744E06F8FCF8A6C0CF3035BECA956A7B41D5
    
            pointR = self.pointS * d
  36. base64-like blob (66 bytes, compression ratio 0.92) (outside string/comment) (raw pass, confidence 0.30)

            d = 0xC51E4753AFDEC1E6B6C6A5B992F43F8DD0C7A8933072708B6522468B2FFB06FD
            e = 0xD37F628ECE72A462F0145CBEFE3F0B355EE8332D37ACDD83A358016AEA029DB7
            pointRx = 0xD867B4679221009234939221B8046245EFCF58413DAACBEFF857B8588341F6B8
  37. base64-like blob (66 bytes, compression ratio 0.91) (outside string/comment) (raw pass, confidence 0.30)

            e = 0xD37F628ECE72A462F0145CBEFE3F0B355EE8332D37ACDD83A358016AEA029DB7
            pointRx = 0xD867B4679221009234939221B8046245EFCF58413DAACBEFF857B8588341F6B8
            pointRy = 0xF2504055C03CEDE12D22720DAD69C745106B6607EC7E50DD35D54BD80F615275
  38. base64-like blob (66 bytes, compression ratio 0.86) (outside string/comment) (raw pass, confidence 0.30)

        def _test_inplace_addition(self):
            pointRx = 0x72B13DD4354B6B81745195E98CC5BA6970349191AC476BD4553CF35A545A067E
            pointRy = 0x8D585CBB2E1327D75241A8A122D7620DC33B13315AA5C9D46D013011744AC264
  39. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_DSA.py:84:1

    base64-like blob (592 bytes over 10 lines, compression ratio 0.81) (raw pass, confidence 0.60)

    -----BEGIN PUBLIC KEY-----
    MIIBtzCCASsGByqGSM44BAEwggEeAoGBAOdW7hcX9LZ5THwhRyShl2N0LEVXK0s/
    j/O0Tzvp9EzgOaJ1dpXskVaX2nTvkU/NGwVmDiQZx2HWOfRdLXm4AtvSPnq4uBtH
    mjgOHzCTJYS6KguVUDI0LryDy1ypBuew181v5lbOy0yLWncSOoxnUKSB47BgV6/2
    likely benign LLM, confidence 0.94 Embedded PEM DSA public key test fixture.
    Reasoning

    This is a PEM public key block inside a DSA import self-test. Test fixtures like this are normal in a cryptography library, and nothing in the snippet is executed or hidden.

  40. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_DSA.py:147:1

    base64-like blob (596 bytes over 10 lines, compression ratio 0.81) (raw pass, confidence 0.60)

    -----BEGIN DSA PRIVATE KEY-----
    MIIBuwIBAAKBgQDnVu4XF/S2eUx8IUckoZdjdCxFVytLP4/ztE876fRM4DmidXaV
    7JFWl9p075FPzRsFZg4kGcdh1jn0XS15uALb0j56uLgbR5o4Dh8wkyWEuioLlVAy
    NC68g8tcqQbnsNfNb+ZWzstMi1p3EjqMZ1CkgeOwYFev9qpuumILgy1gwwIVAK0y
    likely benign LLM, confidence 0.94 Embedded PEM DSA private key test fixture.
    Reasoning

    A PEM DSA private key used as a test vector for importing keys. It is expected test data in a crypto library's self-test suite.

  41. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_DSA.py:210:1

    base64-like blob (448 bytes over 7 lines, compression ratio 0.82) (raw pass, confidence 0.60)

    -----BEGIN PRIVATE KEY-----
    MIIBSgIBADCCASsGByqGSM44BAEwggEeAoGBAOdW7hcX9LZ5THwhRyShl2N0LEVX
    K0s/j/O0Tzvp9EzgOaJ1dpXskVaX2nTvkU/NGwVmDiQZx2HWOfRdLXm4AtvSPnq4
    uBtHmjgOHzCTJYS6KguVUDI0LryDy1ypBuew181v5lbOy0yLWncSOoxnUKSB47Bg
    likely benign LLM, confidence 0.94 Embedded PKCS#8 DSA private key test fixture.
    Reasoning

    A PKCS#8 PEM private key block used as a parsing test vector in the DSA import self-tests. It is ordinary fixture data.

  42. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_DSA.py:238:26

    base64-like blob (580 bytes, compression ratio 0.82) (raw pass, confidence 0.60)

        ssh_pub = """ssh-dss AAAAB3NzaC1kc3MAAACBAOdW7hcX9LZ5THwhRyShl2N0LEVXK0s/j/O0Tzvp9EzgOaJ1dpXskVaX2nTvkU/NGwVmDiQZx2HWOfRdLXm4AtvSPnq4uBtHmjgOHzCTJYS6KguVUDI0LryDy1ypBuew181v5lbOy0yLWncSOoxnUKSB47BgV6/2qm66YguDLWDDAAAAFQCtMvSM064MRaGYph+kteIDIHY7IwAAAIB539w9YU/mNfzrfq6uNxjcLv77RSgpk6xnSdyDwiPYwYhyljFrOwtURmz0RPNLguN
    likely benign LLM, confidence 0.93 SSH DSA public key string used as an import test vector.
    Reasoning

    An ssh-dss public key string literal used to test OpenSSH format import. The base64 is the standard key encoding and the context is a unit test.

  43. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_DSA.py:261:1

    base64-like blob (600 bytes over 10 lines, compression ratio 0.81) (raw pass, confidence 0.60)

    
    4V6GHRDpCrdZ8MBjbyp5AlGUrjvr2Pn2e2zVxy5RBt4FBj9/pa0ae0nnyUPMLSUU
    kKyOR0topRYTVRLElm4qVrb5uNZ3hRwfbklr+pSrB7O9eHz9V5sfOQxyODS07JxK
    k1OdOs70/ouMXLF9EWfAZOmWUccZKHNblUwg1p1UrZIz5jXw4dUE/zqhvXh6d+iC
    likely benign LLM, confidence 0.94 Base64 DSA key fixture data in the import self-tests.
    Reasoning

    A continuation of a base64-encoded DSA key fixture within the import self-tests. No executable or evasive content is present.

  44. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_DSA.py:298:1

    base64-like blob (500 bytes over 8 lines, compression ratio 0.82) (raw pass, confidence 0.60)

    -----BEGIN ENCRYPTED PRIVATE KEY-----
    MIIBcTAbBgkqhkiG9w0BBQMwDgQI0GC3BJ/jSw8CAggABIIBUHc1cXZpExIE9tC7
    7ryiW+5ihtF2Ekurq3e408GYSAu5smJjN2bvQXmzRFBz8W38K8eMf1sbWroZ4+zn
    kZSbb9nSm5kAa8lR2+oF2k+WRswMR/PTC3f/D9STO2X0QxdrzKgIHEcSGSHp5jTx
    likely benign LLM, confidence 0.94 Encrypted PEM private key test fixture.
    Reasoning

    A PEM encrypted PKCS#8 private key used to test decryption on import. Encrypted key fixtures are expected in this test module.

  45. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_DSA.py:449:1

    base64-like blob (1140 bytes over 18 lines, compression ratio 0.73) (raw pass, confidence 0.60)

    -----BEGIN CERTIFICATE-----
    MIIDUjCCArsCAQIwDQYJKoZIhvcNAQEFBQAwfjENMAsGA1UEChMEQWNtZTELMAkG
    A1UECxMCUkQxHDAaBgkqhkiG9w0BCQEWDXNwYW1AYWNtZS5vcmcxEzARBgNVBAcT
    Ck1ldHJvcG9saXMxETAPBgNVBAgTCE5ldyBZb3JrMQswCQYDVQQGEwJVUzENMAsG
    likely benign LLM, confidence 0.94 Embedded X.509 certificate test fixture.
    Reasoning

    A PEM X.509 certificate used as a test input for DSA key extraction. Certificates in test fixtures are normal.

  46. info warn → info by review dynamic-attribute lib/Crypto/SelfTest/PublicKey/test_import_DSA.py:511:24

    reach-by-name through `locals` (ast pass, confidence 0.60)

            for comp_name in ("y", "p", "q", "g"):
                comp_str = locals()[comp_name + "_str"]
                comp = int(re.sub("[^0-9a-f]", "", comp_str), 16)
                assert getattr(key, comp_name) == comp
    likely benign LLM, confidence 0.85 Test code that uses locals() and getattr to compare key components by name.
    Reasoning

    The loop reads local variables by name (for example y_str and p_str) and then compares them against key attributes with getattr. It is a test-helper idiom with bounded, hardcoded names and no dynamic execution, network use or obfuscated payload.

  47. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_DSA.py:520:1

    base64-like blob (1892 bytes over 30 lines, compression ratio 0.75) (raw pass, confidence 0.60)

    -----BEGIN CERTIFICATE-----
    MIIFhjCCA26gAwIBAgIBAzANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQGEwJVUzEL
    MAkGA1UECAwCTUQxEjAQBgNVBAcMCUJhbHRpbW9yZTEQMA4GA1UEAwwHVGVzdCBD
    QTEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbTAeFw0xNDA3MTMyMDUz
    likely benign LLM, confidence 0.94 Embedded test CA X.509 certificate fixture.
    Reasoning

    A PEM X.509 certificate with a test CA subject and email, used as a parsing fixture in the DSA import tests. It is test data and not a payload.

  48. info warn → info by review dynamic-attribute lib/Crypto/SelfTest/PublicKey/test_import_DSA.py:594:24

    reach-by-name through `locals` (ast pass, confidence 0.60)

            for comp_name in ("y", "p", "q", "g"):
                comp_str = locals()[comp_name + "_str"]
                comp = int(re.sub("[^0-9a-f]", "", comp_str), 16)
                assert getattr(key, comp_name) == comp
    likely benign LLM, confidence 0.85 Test code that uses locals() and getattr to compare key components by name.
    Reasoning

    This is the same locals() plus getattr comparison pattern as the earlier finding in this file. It is a bounded test-helper idiom with no malicious behaviour.

  49. base64-like blob (66 bytes, compression ratio 0.91) (outside string/comment) (raw pass, confidence 0.30)

            key = _import_rfc5915_der(unhexlify(data_hex), None, "1.2.840.10045.3.1.7")
            assert key.d == 0x5C4E4320EF260F91ED9FC597AEE98C8236B60E0CED692CC7A057D5E45798A052
    
        def test_import_private_rfc5915_only_0(self):
  50. base64-like blob (66 bytes, compression ratio 0.91) (outside string/comment) (raw pass, confidence 0.30)

            key = _import_rfc5915_der(unhexlify(data_hex), None)
            assert key.d == 0x5C4E4320EF260F91ED9FC597AEE98C8236B60E0CED692CC7A057D5E45798A052
    
        def test_import_private_rfc5915_only_1(self):
  51. base64-like blob (66 bytes, compression ratio 0.91) (outside string/comment) (raw pass, confidence 0.30)

            key = _import_rfc5915_der(unhexlify(data_hex), None, "1.2.840.10045.3.1.7")
            assert key.d == 0x5C4E4320EF260F91ED9FC597AEE98C8236B60E0CED692CC7A057D5E45798A052
  52. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_ECC.py:1100:9

    base64-like blob (132 bytes over 3 lines, compression ratio 1.01) (raw pass, confidence 0.60)

            pem1 = """-----BEGIN EC PRIVATE KEY-----
            MF8CAQEEGHvhXmIW95JxZYfd4AUPu9BwknjuvS36aqAKBggqhkjOPQMBAaE0AzIA
            BLJZCyTu35DQIlqvMlBynn3k1Ig+dWfg/brRhHecxptrbloqFSP8ITw0CwbGF+2X
            5g==
    likely benign LLM, confidence 0.93 Embedded PEM EC private key test fixture.
    Reasoning

    A short PEM EC private key fixture in the ECC import tests. It is expected test data in a crypto library.

  53. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_ECC.py:1107:9

    base64-like blob (132 bytes over 3 lines, compression ratio 1.00) (raw pass, confidence 0.60)

            pem2 = """-----BEGIN EC PRIVATE KEY-----
            MF8CAQEEGA3rAotUaWl7d47eX6tz9JmLzOMJwl13XaAKBggqhkjOPQMBAaE0AzIA
            BG4tHlTBBBGokcWmGm2xubVB0NvPC/Ou5AYwivs+3iCxmEjsymVAj6iiuX2Lxr6g
            /Q==
    dismissed LLM, confidence 0.93 Embedded PEM EC private key test vector in a PyCryptodome self-test.
    Reasoning

    The blob is a PEM-encoded EC private key inside a self-test string literal. Base64 is the normal format for PEM, and the test file exists to exercise key import, so the match reflects expected test data, not hidden payload.

  54. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_ECC.py:1364:9

    base64-like blob (144 bytes over 3 lines, compression ratio 0.98) (raw pass, confidence 0.60)

            pem1 = """-----BEGIN EC PRIVATE KEY-----
            MGgCAQEEHPYicBNI9nd6wDKAX2l+f3A0Q+KWUQeMqSt5GoOgBwYFK4EEACGhPAM6
            AATCL6rUIDT14zXKoS5GQUMDP/tpc+1iI/FyEZikt2roKDkhU5q08srmqaysbfJN
            eUr7Xf1lnCVGag==
    dismissed LLM, confidence 0.93 PEM EC private key fixture used to test key parsing.
    Reasoning

    This is a PEM EC private key literal in a cryptographic import test. The base64 content is a key structure, which is expected in this file and does not indicate obfuscation.

  55. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_ECC.py:1371:9

    base64-like blob (144 bytes over 3 lines, compression ratio 0.97) (raw pass, confidence 0.60)

            pem2 = """-----BEGIN EC PRIVATE KEY-----
            MGgCAQEEHEFjbaVPLJ3ngZyCibCvT0RLUqSlHjC5Z3e0FtugBwYFK4EEACGhPAM6
            AAT5IvL2V6m48y1JLMGr6ZbnOqNKP9hMf9mxyVkk6/SaRoBoJVkXrNIpYL0P7DS7
            QF8E/OGeZRwvow==
    dismissed LLM, confidence 0.93 Second PEM EC private key fixture in the import self-test.
    Reasoning

    Same pattern as the neighbouring fixture: a PEM-encoded EC private key in a self-test. The raw base64 heuristic fires on ordinary key encoding.

  56. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_ECC.py:1662:9

    base64-like blob (120 bytes over 2 lines, compression ratio 1.02) (raw pass, confidence 0.60)

            pem1 = """-----BEGIN EC PRIVATE KEY-----
            MFcCAQEEIHTuc09jC51xXomV6MVCDN+DpAAvSmaJWZPTEHM6D5H1oAoGCCqGSM49
            AwEHoSQDIgACWFuGbHe8yJ43rir7PMTE9w8vHz0BSpXHq90Xi7/s+a0=
            -----END EC PRIVATE KEY-----"""
    dismissed LLM, confidence 0.93 Short PEM EC private key test vector.
    Reasoning

    A short PEM EC private key with BEGIN/END markers in a test module. This is a standard test vector and the flag comes from base64 structure alone.

  57. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_ECC.py:1668:9

    base64-like blob (120 bytes over 2 lines, compression ratio 1.02) (raw pass, confidence 0.60)

            pem2 = """-----BEGIN EC PRIVATE KEY-----
            MFcCAQEEIFggiPN9SQP+FAPTCPp08fRUz7rHp2qNBRcBJ1DXhb3ZoAoGCCqGSM49
            AwEHoSQDIgADLpph1trTIlVfa8NJvlMUPyWvL+wP+pW3BJITUL/wj9A=
            -----END EC PRIVATE KEY-----"""
    dismissed LLM, confidence 0.93 Paired PEM EC private key test vector.
    Reasoning

    Paired PEM EC private key fixture with proper BEGIN/END armour, consistent with a key-import test suite. No decoding or execution is involved.

  58. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_ECC.py:1960:1

    base64-like blob (224 bytes over 4 lines, compression ratio 0.92) (raw pass, confidence 0.60)

            pem1 = """-----BEGIN EC PRIVATE KEY-----
    MIGkAgEBBDAM0lEIhvXuekK2SWtdbgOcZtBaxa9TxfpO/GcDFZLCJ3JVXaTgwken
    QT+C+XLtD6WgBwYFK4EEACKhZANiAATs0kZMhFDu8DoBC21jrSDPyAUn4aXZ/DM4
    ylhDfWmb4LEbeszXceIzfhIUaaGs5y1xXaqf5KXTiAAYx2pKUzAAM9lcGUHCGKJG
    dismissed LLM, confidence 0.93 PEM EC private key fixture for import testing.
    Reasoning

    A PEM EC private key in a test string, using the standard header and the ASN.1 structure expected for this kind of key. The match is a raw base64 false positive.

  59. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_ECC.py:1968:1

    base64-like blob (224 bytes over 4 lines, compression ratio 0.90) (raw pass, confidence 0.60)

            pem2 = """-----BEGIN EC PRIVATE KEY-----
    MIGkAgEBBDDHPFTslYLltE16fHdSDTtE/2HTmd3M8mqy5MttAm4wZ833KXiGS9oe
    kFdx9sNV0KygBwYFK4EEACKhZANiAASLIE5RqVMtNhtBH/u/p/ifqOAlKnK/+RrQ
    YC46ZRsnKNayw3wATdPjgja7L/DSII3nZK0G6KOOVwJBznT/e+zudUJYhZKaBLRx
    dismissed LLM, confidence 0.93 Second PEM EC private key fixture for import testing.
    Reasoning

    Second PEM EC private key in the same test table style. It is ordinary key data inside a self-test, not an encoded dropper.

  60. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_ECC.py:2268:1

    base64-like blob (300 bytes over 5 lines, compression ratio 0.86) (raw pass, confidence 0.60)

            pem1 = """-----BEGIN EC PRIVATE KEY-----
    MIHcAgEBBEIAnm1CEjVjvNfXEN730p+D6su5l+mOztdc5XmTEoti+s2R4GQ4mAv3
    0zYLvyklvOHw0+yy8d0cyGEJGb8T3ZVKmg2gBwYFK4EEACOhgYkDgYYABAHzjTI1
    ckxQ3Togi0LAxiG0PucdBBBs5oIy3df95xv6SInp70z+4qQ2EltEmdNMssH8eOrl
    dismissed LLM, confidence 0.93 Larger PEM EC private key test vector.
    Reasoning

    A PEM EC private key with a secp384-style parameter block, appropriate for a cryptographic test suite. The base64 length is typical of key material.

  61. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_ECC.py:2277:1

    base64-like blob (300 bytes over 5 lines, compression ratio 0.86) (raw pass, confidence 0.60)

            pem2 = """-----BEGIN EC PRIVATE KEY-----
    MIHcAgEBBEIB84OfhJluLBRLn3+cC/RQ37C2SfQVP/t0gQK2tCsTf5avRcWYRrOJ
    PmX9lNnkC0Hobd75QFRmdxrB0Wd1/M4jZOWgBwYFK4EEACOhgYkDgYYABAAMZcdJ
    1YLCGHt3bHCEzdidVy6+brlJIbv1aQ9fPQLF7WKNv4c8w3H8d5a2+SDZilBOsk5c
    dismissed LLM, confidence 0.93 Paired larger PEM EC private key test vector.
    Reasoning

    Paired larger PEM EC key fixture in the same self-test file. Consistent with expected test data and not obfuscated code.

  62. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_RSA.py:79:1

    base64-like blob (428 bytes over 7 lines, compression ratio 0.84) (raw pass, confidence 0.60)

        rsaKeyPEM = """-----BEGIN RSA PRIVATE KEY-----
    MIIBOwIBAAJBAL8eJ5AKoIsjURpcEoGubZMxLD7+kT+TLr7UkvEtFrRhDDKMtuII
    q19FrL4pUIMymPMSLBn3hJLe30Dw48GQM4UCAwEAAQJACUSDEp8RTe32ftq8IwG8
    Wojl5mAd1wFiIOrZ/Uv8b963WJOJiuQcVN29vxU5+My9GPZ7RA3hrDBEAoHUDPrI
    dismissed LLM, confidence 0.93 PEM RSA private key fixture for RSA import tests.
    Reasoning

    A PEM RSA private key literal in the RSA import self-test. The base64 structure matches an ASN.1 RSA key, which is expected in this test module.

  63. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_RSA.py:90:1

    base64-like blob (460 bytes over 8 lines, compression ratio 0.82) (raw pass, confidence 0.60)

        rsaKeyPEM8 = """-----BEGIN PRIVATE KEY-----
    MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAvx4nkAqgiyNRGlwS
    ga5tkzEsPv6RP5MuvtSS8S0WtGEMMoy24girX0WsvilQgzKY8xIsGfeEkt7fQPDj
    wZAzhQIDAQABAkAJRIMSnxFN7fZ+2rwjAbxaiOXmYB3XAWIg6tn9S/xv3rdYk4mK
    likely benign LLM, confidence 0.95 Embedded PEM-encoded RSA private key test fixture.
    Reasoning

    The raw pass flagged a base64 body, but the snippet is a PKCS#8 PRIVATE KEY PEM literal in a cryptography library's self-test module. Test key fixtures like this are expected, and the content is an ordinary DER structure.

  64. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_RSA.py:110:1

    base64-like blob (428 bytes over 7 lines, compression ratio 0.83) (raw pass, confidence 0.60)

    
    Ckl9ex1kaVEWhYC2QBmfaF+YPiR4NFkRXA7nj3dcnuFEzBnY5XULupqQpQI3qbfA
    u8GYS7+b3toWWiHZivHbAAUBPDIZG9hKDyB9Sq2VMARGsX1yW1zhNvZLIiVJzUHs
    C6NxQ1IJWOXzTew/xM2I26kPwHIvadq+/VaT8gLQdjdH0jOiVNaevjWnLgrn1mLP
    likely benign LLM, confidence 0.95 Continuation of an embedded RSA private key PEM test fixture.
    Reasoning

    Continuation lines of another PEM key literal inside a crypto library's test suite. Raw base64 matching on key material is a known false positive here.

  65. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_RSA.py:123:1

    base64-like blob (568 bytes over 9 lines, compression ratio 0.80) (raw pass, confidence 0.60)

                """-----BEGIN ENCRYPTED PRIVATE KEY-----
    MIIBpjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIeZIsbW3O+JcCAggA
    MBQGCCqGSIb3DQMHBAgSM2p0D8FilgSCAWBhFyP2tiGKVpGj3mO8qIBzinU60ApR
    3unvP+N6j7LVgnV2lFGaXbJ6a1PbQXe+2D6DUyBLo8EMXrKKVLqOMGkFMHc0UaV6
    likely benign LLM, confidence 0.95 Encrypted PKCS#8 private key test vector.
    Reasoning

    Body of an ENCRYPTED PRIVATE KEY PEM test vector used to exercise the importer's password-decryption path. The base64 is a standard PKCS#8 encrypted container, not a hidden payload.

  66. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_RSA.py:137:1

    base64-like blob (128 bytes over 2 lines, compression ratio 0.98) (raw pass, confidence 0.60)

        rsaPublicKeyPEM = """-----BEGIN PUBLIC KEY-----
    MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL8eJ5AKoIsjURpcEoGubZMxLD7+kT+T
    Lr7UkvEtFrRhDDKMtuIIq19FrL4pUIMymPMSLBn3hJLe30Dw48GQM4UCAwEAAQ==
    -----END PUBLIC KEY-----"""
    likely benign LLM, confidence 0.95 RSA public key PEM test fixture.
    Reasoning

    Standard PUBLIC KEY PEM block in a crypto library's import tests. The compression ratio is high only because the content is random-looking key data.

  67. info warn → info by review high-complexity lib/Crypto/SelfTest/PublicKey/test_import_RSA.py:142:31

    string literal compression ratio 0.970 (134 bytes) (raw pass, confidence 0.60)

        # Obtained using 'ssh-keygen -i -m PKCS8 -f rsaPublicKeyPEM'
        rsaPublicKeyOpenSSH = b"""ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAQQC/HieQCqCLI1EaXBKBrm2TMSw+/pE/ky6+1JLxLRa0YQwyjLbiCKtfRay+KVCDMpjzEiwZ94SS3t9A8OPBkDOF comment\n"""
    
        # The private key, in PKCS#1 format encoded with DER
    likely benign LLM, confidence 0.92 OpenSSH-format RSA public key literal used as a test vector.
    Reasoning

    The string is an OpenSSH ssh-rsa public key that the comment says was produced by ssh-keygen. High compression ratio is expected for random key bytes in test data.

  68. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_RSA.py:142:39

    base64-like blob (116 bytes, compression ratio 1.03) (raw pass, confidence 0.60)

        # Obtained using 'ssh-keygen -i -m PKCS8 -f rsaPublicKeyPEM'
        rsaPublicKeyOpenSSH = b"""ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAQQC/HieQCqCLI1EaXBKBrm2TMSw+/pE/ky6+1JLxLRa0YQwyjLbiCKtfRay+KVCDMpjzEiwZ94SS3t9A8OPBkDOF comment\n"""
    
        # The private key, in PKCS#1 format encoded with DER
    likely benign LLM, confidence 0.92 Base64 body of an OpenSSH RSA public key test vector.
    Reasoning

    Same OpenSSH public key literal as the adjacent finding, flagged again by the base64 heuristic. It is test data for key import.

  69. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_RSA.py:529:1

    base64-like blob (768 bytes over 12 lines, compression ratio 0.71) (raw pass, confidence 0.60)

    -----BEGIN CERTIFICATE-----
    MIICOjCCAaMCAQEwDQYJKoZIhvcNAQEEBQAwfjENMAsGA1UEChMEQWNtZTELMAkG
    A1UECxMCUkQxHDAaBgkqhkiG9w0BCQEWDXNwYW1AYWNtZS5vcmcxEzARBgNVBAcT
    Ck1ldHJvcG9saXMxETAPBgNVBAgTCE5ldyBZb3JrMQswCQYDVQQGEwJVUzENMAsG
    likely benign LLM, confidence 0.93 X.509 certificate PEM fixture for certificate-import tests.
    Reasoning

    Begins with a CERTIFICATE PEM header and a subject containing 'Acme' and 'spam@acme.org', which are fixed test identities in a certificate-parsing test. The base64 is an X.509 certificate.

  70. info warn → info by review encoding-base64 lib/Crypto/SelfTest/PublicKey/test_import_RSA.py:568:1

    base64-like blob (1524 bytes over 24 lines, compression ratio 0.74) (raw pass, confidence 0.60)

    -----BEGIN CERTIFICATE-----
    MIIEcjCCAlqgAwIBAgIBATANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQGEwJVUzEL
    MAkGA1UECAwCTUQxEjAQBgNVBAcMCUJhbHRpbW9yZTEQMA4GA1UEAwwHVGVzdCBD
    QTEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbTAeFw0xNDA3MTIwOTM1
    likely benign LLM, confidence 0.93 Test X.509 certificate PEM fixture.
    Reasoning

    X.509 certificate PEM fixture with a test CA subject ('Test CA', test@example.com) in a crypto library's test suite. Nothing suggests a payload or obfuscation.

  71. info critical → info by review dynamic-import lib/Crypto/SelfTest/Signature/test_dss.py:59:12

    `__import__` called on a non-literal expression (ast pass, confidence 0.90)

    def load_hash_by_name(hash_name):
        return __import__("Crypto.Hash." + hash_name, globals(), locals(), ["new"])
    likely benign LLM, confidence 0.80 Test helper that dynamically imports a Crypto.Hash submodule by name.
    Reasoning

    The helper builds a module name from a hash name and imports it from Crypto.Hash. The name comes from the test's own vector table, not untrusted input, and the module namespace is fixed. This is a typical test-helper pattern in pycryptodome, though a non-literal __import__ is worth a note since the prefix is concatenated at runtime.

  72. info warn → info by review encoding-base64 lib/Crypto/SelfTest/Signature/test_dss.py:237:1

    base64-like blob (124 bytes over 2 lines, compression ratio 1.01) (raw pass, confidence 0.60)

            key = ECC.import_key("""-----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAECtmVACiNRmlAAx1yqfVEWk1DeEZA
    hVvwpph00t5f4QPFAR5u8sQtzVDV09Kfma5uuiyAySRPTFQi8Jef8MO6Xg==
    -----END PUBLIC KEY-----""")
    likely benign LLM, confidence 0.93 EC public key PEM test fixture.
    Reasoning

    A PUBLIC KEY PEM for an EC key used in a DSS signature test. Standard test fixture with no decoding or execution attached.

  73. base64-like blob (68 bytes, compression ratio 0.96) (outside string/comment) (raw pass, confidence 0.30)

        key_priv_p256 = ECC.construct(
            curve="P-256", d=0xC9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721
        )
        key_pub_p256 = key_priv_p256.public_key()
  74. compression ratio 0.682 is >2σ above file mean 0.655 (raw pass, confidence 0.50)

                "01511BB4D675114FE266FC4372B87682BAECC01D3CC62CF2303C92B3526012659D16876E25C7C1E57648F23B73564D67F61C6F14D527D54972810421E7D87589E1A7",
                "004A171143A83163D6DF460AAF61522695F207A58B95C0644D87E52AA1A347916E4F7A72930B1BC06DBE22CE3F58264AFD23704CBB63B29B931F7DE6C9D949A7ECFC",
                SHA256,
  75. info critical → info by review dynamic-import lib/Crypto/SelfTest/Signature/test_pkcs1_15.py:18:12

    `__import__` called on a non-literal expression (ast pass, confidence 0.90)

    def load_hash_by_name(hash_name):
        return __import__("Crypto.Hash." + hash_name, globals(), locals(), ["new"])
    likely benign LLM, confidence 0.80 Test helper that dynamically imports a Crypto.Hash submodule by name.
    Reasoning

    Same helper as in test_dss.py: a hash module is loaded by name from the Crypto.Hash package for parametrized signature tests. The argument comes from test vectors. The snippet is identical to the other file, so the same reading applies.

  76. info warn → info by review encoding-base64 lib/Crypto/SelfTest/Signature/test_pkcs1_15.py:127:13

    base64-like blob (428 bytes over 7 lines, compression ratio 0.84) (raw pass, confidence 0.60)

        rsakey = """-----BEGIN RSA PRIVATE KEY-----
                MIIBOwIBAAJBAL8eJ5AKoIsjURpcEoGubZMxLD7+kT+TLr7UkvEtFrRhDDKMtuII
                q19FrL4pUIMymPMSLBn3hJLe30Dw48GQM4UCAwEAAQJACUSDEp8RTe32ftq8IwG8
                Wojl5mAd1wFiIOrZ/Uv8b963WJOJiuQcVN29vxU5+My9GPZ7RA3hrDBEAoHUDPrI
    likely benign LLM, confidence 0.95 Embedded RSA private key PEM test fixture.
    Reasoning

    A RSA PRIVATE KEY PEM literal in a signature test. Key material in test fixtures is normal for this library.

  77. info critical → info by review dynamic-import lib/Crypto/SelfTest/Signature/test_pss.py:18:12

    `__import__` called on a non-literal expression (ast pass, confidence 0.90)

    def load_hash_by_name(hash_name):
        return __import__("Crypto.Hash." + hash_name, globals(), locals(), ["new"])
    likely benign LLM, confidence 0.90 A test helper that imports a Crypto.Hash submodule by name.
    Reasoning

    The helper loads a hash module by name under the fixed prefix Crypto.Hash., which is a common way for a self-test to iterate over hash implementations. The input comes from test code, not untrusted data, and nothing in the snippet is hidden or encoded.

  78. info warn → info by review encoding-base64 lib/Crypto/SelfTest/Signature/test_pss.py:33:49

    24 rows of base64-like lines, lines 33-33 (first: base64-like blob (65 bytes, compression ratio 1.17)) (raw pass, confidence 0.60)

        rsa_key = b"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAsvI34FgiTK8+txBvmooNGpNwk23YTU51dwNZi5yha3W4lA/Q\nvcZrDalkmD7ekWQwnduxVKa6pRSI13KBgeUOIqJoGXSWhntEtY3FEwvWOHW5AE7Q\njUzTzCiYT6TVaCcpa/7YLai+p6ai2g5f5Zfh4jSawa9uYeuggFygQq4IVW796MgV\nyqxYMM/arEj+/sKz3Viua9Rp9fFosertCYCX4DUTgW0mX9bwEnEOgjSI3pLOPXz1\n8vx+DRZ
    likely benign LLM, confidence 0.90 An embedded PEM RSA key used as a test fixture.
    Reasoning

    The base64 lines form a PEM-encoded RSA private key embedded as a test vector in a self-test module. This is standard test data for a cryptography library, not an encoded payload.

  79. info warn → info by review payload-bytes-literal lib/Crypto/SelfTest/Signature/test_pss.py:35:11

    bytes literal contains 162 `\xNN` escapes (87% of content) — binary payload shape (ast pass, confidence 0.85)

        tag = b'\x00[c5\xd8\xb0\x8b!D\x81\x83\x07\xc0\xdd\xb9\xb4\xb2`\x92\xe7\x02\xf1\xe1P\xea\xc3\xf0\xe3>\xddX5\xdd\x8e\xc5\x89\xef\xf3\xc2\xdc\xfeP\x02\x7f\x12+\xc9\xaf\xbb\xec\xfe\xb0\xa5\xb9\x08\x11P\x8fL\xee5\x9b\xb0k{=_\xd2\x14\xfb\x01R\xb7\xfe\x14}b\x03\x8d5Y\x89~}\xfc\xf2l\xd01-\xbd\xeb\x11\xcdV\x11\xe9l\x19k/o5\
    likely benign LLM, confidence 0.90 A binary tag stored as a bytes literal for a known-answer test.
    Reasoning

    A bytes literal full of \x escapes is a binary known-answer test vector (a signature or tag) in a crypto test suite. Such literals are expected there and do not execute anything.

  80. info critical → info by review dynamic-import lib/Crypto/SelfTest/Util/test_raw_api.py:408:23

    `__import__` called on a non-literal expression (ast pass, confidence 0.90)

                else:
                    xof = __import__("Crypto.Hash." + name, fromlist=["new"]).new(data=data)
                return [xof.read(length) for length in lengths]
    likely benign LLM, confidence 0.90 A test harness importing a Crypto.Hash module by name to build a XOF.
    Reasoning

    The same pattern as the other test file: a hash module is imported by name under the Crypto.Hash. prefix inside a self-test. The name comes from the test's own table, so this is a legitimate test-harness idiom.

  81. info identifier-low-length src/MD4.c:1:1

    229 of 484 non-conventional identifiers are single-character (47%) (token pass, confidence 0.50)

  82. info warn → info by review macro-keyword-override src/common.h:63:1

    `#define inline` rebinds the reserved C keyword `inline` (token pass, confidence 0.85)

    
    #define inline _inline
    #define RESTRICT __restrict
    likely benign LLM, confidence 0.85 A portability header mapping the inline keyword to a compiler-specific spelling.
    Reasoning

    Redefining inline to _inline in a portability header is a standard compiler-compatibility shim, typically for older or nonstandard MSVC or C toolchains. It has no runtime effect beyond renaming a keyword spelling.

  83. info warn → info by review macro-keyword-override src/common.h:75:1

    `#define inline` rebinds the reserved C keyword `inline` (token pass, confidence 0.85)

    #define RESTRICT __restrict
    #define inline __inline
    #else
    #define RESTRICT
    likely benign LLM, confidence 0.85 The alternate branch of the inline compatibility shim in the same header.
    Reasoning

    This is the alternate branch of the same compatibility header, mapping inline to __inline for another compiler. It is the usual conditional-compilation pattern and is benign.

  84. info identifier-low-length src/ec_special.h:1:1

    145 of 329 non-conventional identifiers are single-character (44%) (token pass, confidence 0.50)

  85. info warn → info by review encoding-escape-soup src/ed25519_perf.c:23:29

    32 consecutive `\xNN` escapes (entropy 4.8 bits/byte) (raw pass, confidence 0.80)

        const uint8_t Gx[32] = "\x21\x69\x36\xd3\xcd\x6e\x53\xfe\xc0\xa4\xe2\x31\xfd\xd6\xdc\x5c\x69\x2c\xc7\x60\x95\x25\xa7\xb2\xc9\x56\x2d\x60\x8f\x25\xd5\x1a";
        const uint8_t Gy[32] = "\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x58";
    likely benign LLM, confidence 0.90 Ed25519 base point coordinates written as byte literals in a performance test.
    Reasoning

    The escape sequences encode the Ed25519 base point coordinates Gx and Gy, which are published curve constants. Writing them as byte-string literals is normal for a crypto performance test.

  86. info identifier-low-length src/hash_SHA2_template.c:1:1

    710 of 1681 non-conventional identifiers are single-character (42%) (token pass, confidence 0.50)

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 pycryptodome-4.1.0.tar.gz https://files.pythonhosted.org/packages/be/3a/28ba9808f6a7361abfe71d389d24eaf15d2114fc4137b9ca764f2491fd49/pycryptodome-4.1.0.tar.gz
printf '%s  %s\n' 3fff8aab4d99b0295729f011d0f7226b3de59d70a5fb9232b61d3b950c6c8da6 pycryptodome-4.1.0.tar.gz | shasum -a 256 -c -
mkdir pkg && tar -xzf pycryptodome-4.1.0.tar.gz -C pkg --strip-components 1
disclude scan --untrusted --severity info pkg