{"id":48,"slug":"quantmrkt-pqc-rag-signing","name":"PQC RAG Pipeline Signing","author":"quantmrkt","description":"Sign and verify RAG document chunks with ML-DSA at ingestion and retrieval time. Prevents vector database poisoning attacks on enterprise RAG pipelines. Open source, 43 tests passing.","tags":"[\"Tool\",\"RAG\",\"PQC\",\"Vector DB\",\"Supply Chain\"]","license":"Apache 2.0","framework":"Python","parameters":"N/A","downloads":0,"likes":0,"verified":1,"created_at":"2026-03-26 03:20:26","updated_at":"2026-03-26 16:38:47","source_url":"https://github.com/dyber-pqc/QuantaMrkt/tree/main/tools/pqc-rag-signing","source_platform":"github","hf_repo_id":"","ollama_name":"","category":"tool","latest_version":"1.0.0","version_count":1,"signature_count":3,"risk_level":"MEDIUM","risk_score":45,"versions":[{"id":48,"model_id":48,"version":"1.0.0","manifest_hash":"2C7EF53F086C054BA315","file_count":25,"total_size":81644,"r2_manifest_key":null,"created_at":"2026-03-26 03:20:35"}],"files":[{"id":2700,"version_id":48,"filename":"LICENSE","sha3_256_hash":"abdcf10f6588f1abfa23a55fbef23267a620b3c67695e93577af0a1d7f881640","size":11325},{"id":2701,"version_id":48,"filename":"README.md","sha3_256_hash":"9e39f29989ac447f108d6a4652ea0894f8d263ac22a37c0c85f90e8b2a0911bf","size":10824},{"id":2702,"version_id":48,"filename":"examples/poisoning_attack_demo.py","sha3_256_hash":"27737c7dad8f8dd2510deb80eb2aa43bdb90d3471a45f1b54548bbeb9cf40f75","size":2719},{"id":2703,"version_id":48,"filename":"examples/retrieve_and_verify.py","sha3_256_hash":"64399ac5a5c63e2b9e1faf9b105ee4ae4f47ab069209739fa926da24a25430c4","size":2455},{"id":2704,"version_id":48,"filename":"examples/simple_ingest.py","sha3_256_hash":"b973278a6081a8aae5ae6c62bac92859eb23af4d904a956c5a6f1afa9d53ba5f","size":1731},{"id":2705,"version_id":48,"filename":"pyproject.toml","sha3_256_hash":"96b8d653bd39ef8f5c642bbcd9489ca1e68f5b1e1a22fa2fd6fe1ab45dbbef29","size":1330},{"id":2706,"version_id":48,"filename":"src/pqc_rag_signing/__init__.py","sha3_256_hash":"6d5570367f8528eb6c4e4ec25073606e008d2fb1fa8ce11fcca23bb6bfcb7b8c","size":1108},{"id":2707,"version_id":48,"filename":"src/pqc_rag_signing/adapters/__init__.py","sha3_256_hash":"77463059b7d335d2e05485a3604f67b21582ac2aea6fdf8675a1fe7a64b727a7","size":232},{"id":2708,"version_id":48,"filename":"src/pqc_rag_signing/adapters/base.py","sha3_256_hash":"661c363f5f77e4683b7622b2384969a8bec9e95e8e64f3516cc932e4ad885068","size":1113},{"id":2709,"version_id":48,"filename":"src/pqc_rag_signing/adapters/memory.py","sha3_256_hash":"241313395d53c04976c71eea149150db05a8d3016e291b6bd1dd8881db5d1eca","size":1733},{"id":2710,"version_id":48,"filename":"src/pqc_rag_signing/audit.py","sha3_256_hash":"9370b5378ea7211d51cbf49d6ff3c42e054f31359e13c3b511f54284c55ce5f4","size":3414},{"id":2711,"version_id":48,"filename":"src/pqc_rag_signing/chunk.py","sha3_256_hash":"e20c3056420ad4883660e83bb56c1da086b91bbfc9b68aebbd5c46071ac84cd3","size":3211},{"id":2712,"version_id":48,"filename":"src/pqc_rag_signing/corpus.py","sha3_256_hash":"b03f3c147045365a08d12a90214091c275cfd69c3ca929f2043c8f601257be67","size":5951},{"id":2713,"version_id":48,"filename":"src/pqc_rag_signing/errors.py","sha3_256_hash":"6232c8a65aeccb54c3bd580dd54c322ce561416ec9f9f5dbb385fef442293a01","size":795},{"id":2714,"version_id":48,"filename":"src/pqc_rag_signing/signer.py","sha3_256_hash":"7a764d7119d9cde69cba71402aea2d21e681b3b156ce690791fde221e642bbdd","size":5604},{"id":2715,"version_id":48,"filename":"src/pqc_rag_signing/verifier.py","sha3_256_hash":"8639068a55019ba936422295273b217e3b8c02476d637f9edbdfa95abdab9265","size":3635},{"id":2716,"version_id":48,"filename":"tests/__init__.py","sha3_256_hash":"a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a","size":0},{"id":2717,"version_id":48,"filename":"tests/conftest.py","sha3_256_hash":"9ea7bc6c3e0a8c8591204dfc8329d48ade97f94357181ece138ff07ba6632bc5","size":1626},{"id":2718,"version_id":48,"filename":"tests/test_adapters.py","sha3_256_hash":"072f327f8057729141d01ae50a52b90856a08b8cfe3fcdaa89cf34525f0e96dc","size":2086},{"id":2719,"version_id":48,"filename":"tests/test_audit.py","sha3_256_hash":"bae00a8373cab3c91207eaec4209199fbddc07533dd04f5dc8883f0d4c1500c6","size":3150},{"id":2720,"version_id":48,"filename":"tests/test_chunk.py","sha3_256_hash":"d4e8c191042e3249ea78c8faf41dbc517a44ba2ecf634e84f1a36466eaebba37","size":2617},{"id":2721,"version_id":48,"filename":"tests/test_corpus.py","sha3_256_hash":"513e636cb95ac215b9cac036d4f3e9ec0680dca54ad227c3f1cb5e5f9fc7710b","size":4264},{"id":2722,"version_id":48,"filename":"tests/test_integration.py","sha3_256_hash":"01fa0908fedabba8f40d086e3bf5784c1722209521a42c572d176a4f5ad1b4b4","size":3358},{"id":2723,"version_id":48,"filename":"tests/test_signer.py","sha3_256_hash":"eafab35087e52def3efd7b7a7c1f5ba82ed805713f2fb98da18824e5f4988ebf","size":4037},{"id":2724,"version_id":48,"filename":"tests/test_verifier.py","sha3_256_hash":"fa810f282305384d00c7b951aa549c05843185c832c5ffb5df2f73c66fbbef30","size":3326}],"signatures":[{"id":92,"version_id":48,"signer_did":"did:web:quantamrkt.com:tools:signing","algorithm":"ML-DSA-87","signature_hex":"a733445566ccddee","attestation_type":"creator","signed_at":"2026-03-25T10:05:00Z"},{"id":93,"version_id":48,"signer_did":"did:web:quantamrkt.com:verification:primary","algorithm":"ML-DSA-87","signature_hex":"b844556677ddeeff","attestation_type":"registry","signed_at":"2026-03-25T10:06:00Z"},{"id":392,"version_id":48,"signer_did":"did:web:quantamrkt.com:chain:authority","algorithm":"ML-DSA-87","signature_hex":"908115d3e4921eecfc55815fec30a7eff93be7049d595ac3ab38c444e10b6edafa619540cd8facb574fa83ed711b7247cc7949b042026d9b723273bc1f188b31490b4d5c775b82fa7c683cd46d21d24e4a163977da389a7b30b962f4b9f3fdfd95ebf4314cd6f4c893b68afc04b15658572746d96d89bd5ade58dad70152b4844ea466798295ab446280e8cb8451ca651a22fcc3418bfff51fe62a49138861d69f849125d99e21c407d7a1f3a2da57606dc83ba167d5e3bf0f1792856a264e64d3bfbd14f822f1b6ad15d2bc8f3ba65ac49dd34a3e8620eb791f4b0cd7bb9eb1f6af8ef4edc864f1bed782cd6685fa3b7967bcc1bc959aad769b473b58dc1fe758d28257f60c18b114c8c87173ec54e1e8b9cfb5756e55671beba7dedb56f381bb1a0f0c7fa404a45148fa820525b5d789bb1f950a9a4b4652afbaf5655e1165e802171dc76ddaf839c8f106979cf33769210d44c66f99b75a6e53d3174920c4016a46cc8630b86a019ef00cf67a954886181025d853c8752f5197547da3b659e7973d86ba71934c7a888ae0166b7b62a3067c37daf9ca03522436cb5dcff4b4591e7d20b611ea92c67ef17f159bfa47bbf2393e985b9e5324c3cea796d902157736780a8fa81d3c6dc1d646e449cb2eda04fa4ccf4a218ec509ca2a26715a47e9b9567f3e891777777ab3179c3da81aa563f8e01f7c9781a0576a065b0da3da02414a055238c9ac16054bd917c0d9b1fa0703d82037df82ba01b759656879b37ceb93e1a6dcf49e81ed2403885e5dc6f466f075212d62b69928b53892c176c9ac04f404841748f283d99ea967766a8e8677f851778fb59a33162bc20787e4bbf97e4d398c963faf109466b847aabb38da76ff4bcff10a3722473c61900580e9c07c73c74f80dd32bc3680873c1e3b61ccaabc1539a7c1c7d7d5a65eac742c73254a0bdb1e6430c5695f701d7c089fd9b8a5aaf8ed3e5af77f58cc7d6f3de42c6d0d6dc8b5182fb9c94c9cd8a608bda434d67c7cbfdd3838cb94f8bec5957e98af259e79a18191e588527e352ea2cccfb3d95dd31464380aa094b32e7a2bf743e064f1e44affea7a62210475ba935b3e0d61f2a7e50e8cb51f52329c1efaee4e73844bc8c6a36eb127dfc86d358eb120e3125de3e52f78e277c12459675430b9811032d165631f2dbfd9511e6dfefde59dc7f28fe9b39976c54991151c414c444a9a2d92a5009d4f19b749e5bfb4f65d0072089a2255230f3ffdbd6b5d2e9b8fb3855908b9bed461200c3f333975fa5c5a038146f9955fbf4b7e65234c386bb557b79b33900f193763a0a496c5a3d07804823d256692b8df7cd2c0eeb8481d9b8114fd1e5a2f2e1fea7e722bc4d464129f124ffd7df8e0a245d191a3c61532b45b5e77a78e5b2886c510cfa2be28841b4960d43ecce731436f2d1e1d699d7d30656f33fa4f650d6858821b7e8f8d3a6c16ab67be4a330afc1838e5e0352868273afd76845e6369fd436f6a4a4b78bec6ed1cfebd03520e82cf3879a5cf56252d5061b5012bfb56a9c0daae711f3f8f3b28068cb7c58d47065a2606ec19cb242aba01f4098094ae47a532d381dcd38201564c26684d67b7b66a08534266497a319fbcab8a9dd4c8bf595b04ff23a17e594dabe613fe68a9ab93bdbf07e4e47f3108dbc4d35438170e8e9d2225eeac3f9974ebcd89b4080cccf19ac74666336592bc90960a000e61448e27dcca7cf900f9dea123a32b0f7055cc8f2a5a42a284c36e93f5b8b8d253be69f377a1f6c28ca13470196603fa335109a41fab2a0f52c96256a3050e1943c31fa6dd302c74277d1c634e231bd53a04725e17dbcb6429b90e69f80879493ce124f6f8d8ed2e8cfb9efcbb485ad00fb7658abd5050dfd205a6a55f7089b9194d988d593f444f2864a8fb30615e56c35ca5e3c6b631df8358a6625afe76809a826f6e6c6518c1dd7faf98756f017c00934d1ae1fed2987da35484d854473bc4c6185e8057810bd3f6ae864919b94dc68a5cdf46d14e1de6cbc86d151ba687c86860d2594ef75bf2de45eaa22720313a4ee19a49a4ca97752d5ef7beb39b038ac3de42f206843ba459b4cf9499521adeb8b35fb58b6a0d0d56074e0429635aa100e530393056fb51adeda82115e58153fe0a52c615163e42e816064f69ede3397fb03ba94489d82d3eb37e748507b813b6e26baf6b0df1b47697f4094e97e468dc3d193367ce49202c2c706f9abefe777e5ae9635386b4e8ee6e01bd0377aa3676deab89007bf1a07c74c721175a5622a2c9de8628702c2445b16d1d2f362deb0c7ceaa8315a45c1604540c0925ef5bb815e498db61bc855721a273d687874d859f2475734152c40e968620580037cd2a1c221454232b5ae2cd191beaaf139c6905170bd27c7a433cd64ea8466d11db6dac04da84534ed12e372aa2cdff2c91864e797f9989cd0852a1597ccebc0e9fd1703647131911f908cced5e3a28e32a70c56843148df789b984eef23f2abc3518b6403dc37a1f8bf18588b8c1741256f620c43649e199336fc2796a65e2169a2984d6f593cc2d6cd10ced940d8474299ac98dd1bdcc942f54c5408b8b47270536061ffe17cd3babb37eee477086526e29979f0cf2b0296528533d56a5176aed8378668455111b5e2fd16e310e3a6e03c00b370824be860eb1bcdab3c7d686f069b58e4479cb8775e209d2f95233367486a7640b7ece30f8cf2dd9827741af8db7cc7eefa6f23b53c58bccadaa992cb0509aed29751abd7143705a4e09c8d6628e00bdbf79cad04e01c4aafbc0837402717a3b373f9382863d74407a814df4e85f5195812eb792586d5ffbfc6adc71cc1f977233865c7f0d89fb836dd6d95ea492238d5294389677d0cef8bbb65d1ae60548e22b60f358ca6e044d332af375b28d021966393d63902607824abb3c0002d62b0eaf61b527fc829ea652f010b1286f7832460ef8a549bc6bb6d0c09ec006000942c1345d353f1855ce13f358212864a10f8991c3de592e83006ac1b081a059c8c1a96fd74ef9342affc607a67dd1bc5d30bb27ed2f497cbd71a0b7ca1c3643900f1360454a8e41fb7860e3a89e08d4034454842e3085c18740664afd0f590b7817dfb694dfec3373d74e177af4257688fcbb0883e9d8d87891e578352f25238a2a9f7460f7235b681848ba7768382f099baadcfe222c50480970241f527ea9995f40fd16daa33cb7609ce0b107877f6d0a2f96415f947888b473801af5aa4999f58b17d0d64b8536f4f69caa0cd101bd2775d579d8abc90926f9c49fe9c70f34250655d0f5c8161f61eb5da295561017a13b28ab938c87ab2aac560caf91ce99bc268cd950be0de1c3740a3c98b91de28d703e1390ab3f51df5db9d25ad479d7ffc5b569bafc00169aedb0952df8b72c6b48b6b1db92daae66454a71628ba237a89fbe1de07fbd915ab6ed9aa8f0359c639bfc1b38578d0ff3871243111121339cefad8efe5461d8d517aa5ae9f4c93fba7ff33bc449ad625fd3d87e777b2632d8a026c4649298936f7bf3f92d065c1fda29da90320da0d60f9e9bff6a078385dda2b175395ca923de719523d11b3e51a89729e82dedeafd3f170a0d5e7bc2e4cd956cafb0b327a169c66548ef305ac35a8e479d9529b03ad47edb1375635649a6e066cc8ed9e43ea6e504150cafada7c4111ce8578db650a83583f68e3688903c01a7295ff50c837ea3d99e9dd7186794b6982db28af454d76b81e86f8d810901e9f5d0605ae1b14561271232366097e35cbec9f23868e064be2e4cd207c3b21aabbf5650cc28d53ecb981f11d734a00e029efa99088deaaef9bdbafa534d3e99f0b940d84ff3c1d0244d56a2b6e8a2771450a8905071c9766cca8ef850faa7cc8f8167e845da7172b5d5ad23ba49bb521e354ad0d1bfbba38f05c51b884b9f6fd30f68413a6cfdc0f54bbfe8ae0a31b9bec2abaac3b01def4cbaa17c498913cffb38e061d20421fc6d34826915c6c60881eeb353b07449e538c10e8ea032a12318d70567357b821ffa7df7938427ad5188228023dbfddc7672cd4d5eb84ed688c8bc433e38761f4055bc4babec93db5c6ceab8297e75a6e7ebf348bb3465632a277ce709397be95de4995301718b11f98286a43c3855dfa316184d07e1e0f310f3ccaed5a125c14af34a390f779f1662904e473c754126e5eebd4112f4fb0110a6340bfe7d01d6c4267b3a1a06004a973742fe7c3fcbc4dc8b7fab30ebf7e077a15ef4410b666d5b7e2624acbdf0aa41e9945e77c390170d10ee541b4f77b23450bb8e6379bcf05a40195afe37a0aae2d32161d7d0df469f891cc92b7840e2f06a21a59594a441bc5e52ae744dbb3ccc622d017fc981a3db362f48022a93c2fd4eafa527d00eb25df82f394976aa4c42a4d267bd00ba6422a8e433f834ff53d061f7c3529f90ab4d337051d450eb61e8eeb3b03b0e3da3d84c8101e03512c0393b1dddd4e71730e2c773ff757033a06241ac0e23eb28a5083b4ab4a9ff7767a1b0511ebbc6366111d07016f242b75f44235e64e318e46748891852ade7ae396b1d054204391a787648b59f493b0388437a596aadc0bd0e3a7b864c7e38324ac6abf3174d0e1a026651d618d6b858cf3661715a534b5d7ba38251e7bf35865c0de939c3b36bc39fa8dbaeb2a38fb1d29dccc4ec4c6d83118829cbb58f5d68675e87336dd4cc4d7932166bcf190e8bdd23950704a060c3e0ca5afcae963dd02f78d7b503305b2b97141acc96a4af5690f3eea6ed30a0b24a7a8dc5fa6312a4696e86b8c5187957710a759d387f8c2d047523fa102c40030f33df56b1bba861813dece05ef448bf06f71e5cb219ab10a092264615f95bf92a9b37c9da76eee5a81e399a7ae18a13710bb3cdb4f0b3a547b56a4438aae26178da4e7effc65a24f900d1071087e3222baf8354bec4c16b4d7e7de0b12f47fec22e94b9402df1cbda645cb8d15f71f4abf0dfa17989a83df06995005c52f0d31377299efdf782364656c17775f068237498fd4b074a09f7af3cad2ed819d5bbe420dfb6a98a11d201f73dae814defa36799bcd80262a5f936a7c6cde22c29b7a3f37769ea4baafacb4ff002a162bb70554211c1c98b688c01d5a316ca1d645945b8ce90626f29295a3444554398fa63600abb4805e2ec60a567f98f26e73a6ecab208624f4472a631525aea91819728ed667146cab17e4fac8afa98615fe7e486fae78420509ffd6b2a208bd41f656de5487a881555cb59e341afddea1a1bdd568c4b75c52d4dd0cf2b56b28b379da00b3f4dfe5e61e6fb6389ed1e664c6e6458a030ce192e47a3c6b61e58e2668ae377935de334ce6c7a8edbff6ba4028a815845b61aa40399b7f9dfa1f811902e5da787f6aa389a1a38378f3e3b4b729a10fe815bb36aa62645149cb9bf01380a7d0c134de49c99ea3cdcbdec422838b591f5538be04003843a9915c70c32158bd1dc334fc66d90ab2c0ac68e17cb015aaa638fcd92b20b115a4cded48969e1da0b923d420d8ebef2caec630fb572163ada4274c73856bd45a03c554c3493499b63c0bc042336712419f384215627816a24437fab48503f3c19f3ae8c8a41cb6149c2331b6545e8d2a1091cfb7a6735478a95bda76bd0447940943b503708adbb69a9f89153f670b3093adda28cd8e4ccfdef4b1433a63287a70eec788d8c4f8f7fd00766b05bfcd35b9d5fca76fe81fc011f4f9c00408c90d7b0e139c77bcc8f2293879ca7c5dd19e13b087e31a45ddd6ff6de60667b1d230d00629dac2e9a103f92cd3279f2e96d6e72aefa18745fdf63242ead45b55efcef51365b7da732411027d0f8760d37f2a254dedb3a8c0329e3a38ae642c3758a0573d27a460b27a9f5ddd849d0f3445975c42d129a16d8e20c87a82f999caeef62631180f4ec9c04e7b17aee12c82676f240185f0dd8ed77a59399aae67c923eb7edbc30fabc34ace7460a35aae097558492560f95645fc772907f885921c7ed0e9dea11ea2ebe0caab9f6f05e83f5af3d1859fb78b59cacaa5a29a063ffd4732cbe32576004f6c78f513b08ee0c5e019517c3a104b0a7a133a326d20e3653e651b301df3e287a50dff6dfeb16eb1b27e81ef443e99b5d35e1306d79a728547835a45baad873142e6026d427ec8dca9338d16f725c926bdccf41523f367a72f5c8a77d8f9b1f1197e3837ec3316320efad6c0abbf3bb3b5428488ec015c543173a47f58847cd105ccfd6e87747bf212202bcb20ced039cc50eefdd2dddccb02dcbb81cbbe275c243c17c74fb5fe84c50f3829186dad8803892cb2bfd9b4383242e357c4db0b78194ed093dd0e0649d053a514866ded052c8b3582c5d19710e388df31ee7d54031dcee85a3a48c8f6e38b1d251662bded284ba538899da3b0b60123277189b1bbe605182a4c585d606f76b9c6ed0425686bbee501304b6e6f88a7dbe5184482d23a5376b0c9eaee224b565f7a99c8f5000000000000000000000000000000060e1a20292d343c","attestation_type":"pqc_registry","signed_at":"2026-03-26 16:38:47"}],"hndl":{"id":48,"model_id":48,"risk_level":"MEDIUM","risk_score":45,"shelf_life_years":5,"sensitivity":"internal","recommendation":"Monitor quantum developments. Tool has moderate HNDL exposure.","assessed_at":"2026-03-26 03:20:50"}}