{"id":22882589,"url":"https://github.com/cqcl/ironbridge.libs.nist_pqc_algorithms","last_synced_at":"2025-03-31T16:38:34.856Z","repository":{"id":49540016,"uuid":"363384909","full_name":"CQCL/IronBridge.Libs.Nist_PQC_Algorithms","owner":"CQCL","description":"Nist Post-Quantum Cryptography (PQC) Algorithms used by RestServerCpp","archived":false,"fork":false,"pushed_at":"2021-10-06T12:15:16.000Z","size":2332,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-02-06T21:46:20.021Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CQCL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null}},"created_at":"2021-05-01T10:41:46.000Z","updated_at":"2024-09-15T15:14:02.000Z","dependencies_parsed_at":"2022-09-21T10:41:41.941Z","dependency_job_id":null,"html_url":"https://github.com/CQCL/IronBridge.Libs.Nist_PQC_Algorithms","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CQCL%2FIronBridge.Libs.Nist_PQC_Algorithms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CQCL%2FIronBridge.Libs.Nist_PQC_Algorithms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CQCL%2FIronBridge.Libs.Nist_PQC_Algorithms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CQCL%2FIronBridge.Libs.Nist_PQC_Algorithms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CQCL","download_url":"https://codeload.github.com/CQCL/IronBridge.Libs.Nist_PQC_Algorithms/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246499331,"owners_count":20787483,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-13T18:18:30.290Z","updated_at":"2025-03-31T16:38:34.837Z","avatar_url":"https://github.com/CQCL.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IronBridge.Libs.Nist_PQC_Algorithms\nNist Post-Quantum Cryptography (PQC) Algorithms used by RestServerCpp\n\n\nThe libs/crypto folder of this repo contains an **unaltered** copy (except for the\nmakefiles) of the Reference Implementation of each PQC algorithm.\n\n### Original Sources\n\nhttps://csrc.nist.gov/projects/post-quantum-cryptography/\n\n* https://csrc.nist.gov/projects/post-quantum-cryptography/round-2-submissions\n* https://csrc.nist.gov/projects/post-quantum-cryptography/round-3-submissions\n\n```\n# +-----------+-------------+------------+-------------+------------+\n# |           | NIST_Round2 | CQC_Round2 | NIST_Round3 | CQC_Round3 |\n# +-----------+-------------+------------+-------------+------------+\n# | kem       | frodo       | frodoKEM   |             |            |\n# |           | kyber       | kyber      | kyber       | kyber      |\n# |           | mceliece    | mceliece   | mceliece    | mceliece   |\n# |           | newhope     | newhope    |             |            |\n# |           | ntru        | ntru       | ntru        | ntru       |\n# |           | nts         | nts        |             |            |\n# |           |             |            | saber       | saber      |\n# +-----------+-------------+------------+-------------+------------+\n# | signature | dilithium   | dilithium  | dilithium   | dilithium  |\n# |           | falcon      | falcon     | falcon      | falcon     |\n# |           | picnic      | picnic     |             |            |\n# |           | sphincs     | sphincs    |             |            |\n# |           |             |            | rainbow     | rainbow    |\n# +-----------+-------------+------------+-------------+------------+\n# | support   |             | libkeccak  |             | libkeccak  |\n# |           |             | cqcrandom  |             | cqcrandom  |\n# +-----------+-------------+------------+-------------+------------+\n```\n\n### Build NIST Crypto Algorithms\n\nTo build all algorithms \n```\n./build-algorithms.sh\n```\n\nAlternatively, to build a specific release...\n```\n./build_algorithms_nist_round2.sh\n./build_algorithms_nist_round3.sh\n```\n\nThe libraries are installed into **/usr/local/share/ibc/libs**.\n\nThe library names have been adjusted to indicate their contents...\n\n* Suffix: \"_NR2_STDRNG\" = Nist Round 2 with classic/standard rng\n* Suffix: \"_NR2_CQCRNG\" = Nist Round 2 with CQC rng\n* Suffix: \"_NR3_STDRNG\" = Nist Round 3 with classic/standard rng\n* Suffix: \"_NR3_CQCRNG\" = Nist Round 3 with CQC rng\n\n\nIn the _**RestServerCpp**_ sources, the set of libraries that is used by changing the value of _**_whichAlgorithms**_ variable.\n\nSee **./IronBridge.Software.RestServerCpp/server/sources/Ironbridge/Api/Core/RandomProducer.h**__\n\n```\n    enum\n    {\n        USE_ALGORITHMS_NISTROUND2_STDRNG = 21, // \"_NR2_STDRNG\" - Nist Round 2 with classic/standard rng\n        USE_ALGORITHMS_NISTROUND2_CQCRNG = 22, // \"_NR2_CQCRNG\" - Nist Round 2 with CQC rng\n        USE_ALGORITHMS_NISTROUND3_STDRNG = 31, // \"_NR3_STDRNG\" - Nist Round 3 with classic/standard rng\n        USE_ALGORITHMS_NISTROUND3_CQCRNG = 32  // \"_NR3_CQCRNG\" - Nist Round 3 with CQC rng\n    } __whichAlgorithms = USE_ALGORITHMS_NISTROUND3_CQCRNG;\n```\n\n### Build Results\n\nFor example...\n\n```\njgilmore@msasa:[~/dev/github/CQCL/IronBridge.Libs.Nist_PQC_Algorithms]$ find /usr/local/share/ibc/libs -iname \"*so\"\n/usr/local/share/ibc/libs/libdilithium-1_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libdilithium-1aes_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libdilithium-2_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libdilithium-2aes_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libdilithium-3_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libdilithium-3aes_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libdilithium-4_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libdilithium-4aes_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libfalcon-1024_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libfalcon-512_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libfalcon-768_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libfrodokem-1344_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libfrodokem-640_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libfrodokem-976_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libkyber-1024_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libkyber-102490s_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libkyber-512_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libkyber-51290s_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libkyber-768_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libkyber-76890s_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libnewhope-1024cca_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libnewhope-1024cpa_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libnewhope-512cca_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libnewhope-512cpa_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libntru-hps2048509_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libntru-hps2048677_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libntru-hps4096821_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libntru-hrss701_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libnts-1264_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libnts-13136_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libnts-1380_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libpicnic-l1fs_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libpicnic-l1ur_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libpicnic-l3fs_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libpicnic-l3ur_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libpicnic-l5fs_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libpicnic-l5ur_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libsphincs-haraka-128f-robust_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libsphincs-haraka-128s-robust_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libsphincs-haraka-192f-robust_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libsphincs-haraka-192s-robust_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libsphincs-haraka-256f-robust_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libsphincs-haraka-256s-robust_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libsphincs-sha256-128f-robust_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libsphincs-sha256-128s-robust_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libsphincs-sha256-192f-robust_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libsphincs-sha256-192s-robust_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libsphincs-sha256-256f-robust_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libsphincs-sha256-256s-robust_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libsphincs-shake256-128f-robust_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libsphincs-shake256-128s-robust_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libsphincs-shake256-192f-robust_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libsphincs-shake256-192s-robust_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libsphincs-shake256-256f-robust_NR2_CQCRNG.so\n/usr/local/share/ibc/libs/libsphincs-shake256-256s-robust_NR2_CQCRNG.so\n\n/usr/local/share/ibc/libs/libdilithium2_NR3_CQCRNG.so\n/usr/local/share/ibc/libs/libdilithium2-AES-R_NR3_CQCRNG.so\n/usr/local/share/ibc/libs/libdilithium2-R_NR3_CQCRNG.so\n/usr/local/share/ibc/libs/libdilithium3_NR3_CQCRNG.so\n/usr/local/share/ibc/libs/libdilithium3-AES-R_NR3_CQCRNG.so\n/usr/local/share/ibc/libs/libdilithium3-R_NR3_CQCRNG.so\n/usr/local/share/ibc/libs/libdilithium5_NR3_CQCRNG.so\n/usr/local/share/ibc/libs/libdilithium5-AES-R_NR3_CQCRNG.so\n/usr/local/share/ibc/libs/libdilithium5-R_NR3_CQCRNG.so\n/usr/local/share/ibc/libs/libkyber-1024_NR3_CQCRNG.so\n/usr/local/share/ibc/libs/libkyber-102490s_NR3_CQCRNG.so\n/usr/local/share/ibc/libs/libkyber-512_NR3_CQCRNG.so\n/usr/local/share/ibc/libs/libkyber-51290s_NR3_CQCRNG.so\n/usr/local/share/ibc/libs/libkyber-768_NR3_CQCRNG.so\n/usr/local/share/ibc/libs/libkyber-76890s_NR3_CQCRNG.so\n/usr/local/share/ibc/libs/libntru-hps2048509_NR3_CQCRNG.so\n/usr/local/share/ibc/libs/libntru-hps2048509_NR3_STDRNG.so\n/usr/local/share/ibc/libs/libntru-hps2048677_NR3_CQCRNG.so\n/usr/local/share/ibc/libs/libntru-hps2048677_NR3_STDRNG.so\n/usr/local/share/ibc/libs/libntru-hps4096821_NR3_CQCRNG.so\n/usr/local/share/ibc/libs/libntru-hps4096821_NR3_STDRNG.so\n/usr/local/share/ibc/libs/libntru-hrss701_NR3_CQCRNG.so\n/usr/local/share/ibc/libs/libntru-hrss701_NR3_STDRNG.so\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcqcl%2Fironbridge.libs.nist_pqc_algorithms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcqcl%2Fironbridge.libs.nist_pqc_algorithms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcqcl%2Fironbridge.libs.nist_pqc_algorithms/lists"}