Skip to content

Refactor: link metadata via SPDX submodule + automation#48

Open
scanoss-qg wants to merge 3 commits into
mainfrom
refactor/spdx-link
Open

Refactor: link metadata via SPDX submodule + automation#48
scanoss-qg wants to merge 3 commits into
mainfrom
refactor/spdx-link

Conversation

@scanoss-qg
Copy link
Copy Markdown
Contributor

Summary

Refactor of this repo so it owns only keyword definitions per algorithm id, while metadata (name, OID, cryptoClass, key sizes, references) is sourced from spdx/cryptographic-algorithm-list as a Git submodule and joined by id. Adds the automation (scripts + 3 workflows) that keeps generated artifacts and downstream platform_deployment in sync.

What changed

Phase A — refactor (commit 4bd6099)

  • SPDX repo added as submodule at external/spdx-crypto/ (pinned commit, no fork).
  • 206 keyword YAMLs migrated to flat keywords/<id>.yaml with git mv (history preserved).
  • CMAC.yaml normalized to cmac.yaml to match the canonical SPDX id (per rule "ID conflicts → SPDX wins").
  • Stub keywords/<id>.yaml created for the 5 SPDX-only ids (X509, blakex, chacha, diffiehellman, shax).
  • Removed duplicated metadata under definitions_crypto_algorithms/algorithms/ and the now-obsolete definitions/ tree.
  • Replaced spec_crypto_algorithms/ with a slim spec/ describing the keyword-only YAML format.
  • Added scripts/data_io.py, scripts/validate_consistency.py, scripts/build_linked_dataset.py.
  • Generated dist/:
    • crypto_algorithms_keywords.json{id: [keywords]} for every algorithm.
    • crypto_algorithms_linked.json{id: {spdx, keywords}} for ids present in both sides.
    • spdx_snapshot.json — baseline used by the SPDX-change detector.
    • inconsistency_report.json — validator output.
  • Adapted utilities/crypto_detect.py to the new layout (loads keywords/ and metadata from the SPDX submodule).
  • Added pytest fixtures + unit tests.
  • Rewrote README.md and utilities/README.md.

Phase B — automation (commit 3144407)

  • scripts/detect_spdx_changes.py — diff submodule vs dist/spdx_snapshot.json.
  • scripts/generate_sql.py — INSERT/UPDATE SQL for crypto_algorithms_metadata (conservative columns).
  • .github/workflows/keywords-changed.yml — on keyword changes, regenerate dist/ and open PR.
  • .github/workflows/spdx-changed.yml — daily cron + workflow_dispatch with spdx_repo_url override; detects upstream changes, creates stubs for additions, regenerates dist, generates SQL, opens one PR per run.
  • .github/workflows/propagate-to-platform-deployment.yml — on push touching dist/ or sql/, opens PR in scanoss/platform_deployment (target is editable via env in the workflow).
  • Tests for both new scripts.
  • docs_crypto_algorithms/automation_testing.md — manual setup, local dry-run, workflow_dispatch testing against the fork, cleanup.

Validator state on this branch

metric value
keyword files 211
SPDX yaml files 127
linked (strict id match) 127
case collisions 0
body algorithmId issues 0
keywords-only (no SPDX) 84
SPDX-only (no keyword) 0

The 84 keyword-only ids are reported in dist/inconsistency_report.json and remain in crypto_algorithms_keywords.json but not in crypto_algorithms_linked.json.

Required manual setup before workflows can run

  1. Repo secret PLATFORM_DEPLOYMENT_TOKEN — fine-grained PAT with Contents: r/w and Pull requests: r/w on scanoss/platform_deployment.
  2. Sync the SPDX test fork: gh repo sync scanoss-qg/crypto-algorithms --source spdx/cryptographic-algorithm-list. Used as synthetic upstream for workflow_dispatch dry-runs.

Test plan

  • git submodule update --init --recursive after checkout.
  • pytest tests/ — 17/17 passing locally.
  • python3 scripts/validate_consistency.py — exit 0, 0 hard errors.
  • python3 scripts/build_linked_dataset.py — no diff in dist/.
  • Dry-run utilities/crypto_detect.py on a sample file — metadata resolved from SPDX.
  • Add PLATFORM_DEPLOYMENT_TOKEN secret.
  • Trigger spdx-changed.yml via workflow_dispatch with spdx_repo_url=https://github.com/scanoss-qg/crypto-algorithms.git after injecting a synthetic change in that fork — verify the bot PR appears.
  • Modify a keyword YAML on main (after merge) — verify keywords-changed.yml opens a regen PR.
  • Merge any of the bot PRs — verify propagate-to-platform-deployment.yml opens a downstream PR.

🤖 Generated with Claude Code

scanoss-qg and others added 2 commits May 10, 2026 12:53
This repo now owns only keyword definitions per algorithm id; metadata
(name, OID, cryptoClass, key sizes, references) lives in the SPDX
cryptographic-algorithm-list, joined via the algorithm id.

Changes:

- Add SPDX repo as Git submodule at external/spdx-crypto/ (pinned).
- Migrate definitions_crypto_algorithms/definitions/<cat>/<id>.yaml to
  flat keywords/<id>.yaml (preserves history via git mv).
- Normalize CMAC -> cmac to match the canonical SPDX id.
- Delete duplicated metadata in definitions_crypto_algorithms/algorithms/
  and the now-empty definitions/ tree.
- Replace spec_crypto_algorithms with a slim spec/ describing the
  keyword-only YAML format.
- Add scripts/data_io.py, scripts/validate_consistency.py and
  scripts/build_linked_dataset.py. The build script is the sole writer
  of dist/.
- Add dist/crypto_algorithms_keywords.json (keywords by id),
  dist/crypto_algorithms_linked.json (SPDX metadata + keywords for
  linked ids only), dist/spdx_snapshot.json (diff baseline) and
  dist/inconsistency_report.json (validator output).
- Stub keywords/<id>.yaml for ids present in SPDX but not yet here:
  X509, blakex, chacha, diffiehellman, shax.
- Adapt utilities/crypto_detect.py to the new layout (loads keywords/
  and reads metadata from the SPDX submodule).
- Add pytest fixtures + unit tests for both scripts.
- Rewrite README and utilities/README to document the new model.

Validator state: 211 keyword files, 127 SPDX entries, 127 linked,
0 case collisions, 0 body-id mismatches, 84 keywords-only,
0 SPDX-only. Inconsistencies are reported in
dist/inconsistency_report.json.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds the tooling and CI workflows required to keep keywords/, dist/ and
the downstream platform_deployment in sync as either side evolves.

Scripts:
- scripts/detect_spdx_changes.py — diffs the current SPDX submodule
  state against dist/spdx_snapshot.json; emits {added, modified,
  removed} JSON. Exits 1 on any change so workflows can branch.
- scripts/generate_sql.py — emits INSERT/UPDATE SQL files for the
  crypto_algorithms_metadata table (conservative schema: id, name,
  oid, crypto_class, common_key_size, specified_key_size, reference).
  One file per change plus a combined <ts>__all.sql.

Workflows (under .github/workflows/):
- keywords-changed.yml — runs on push to main under keywords/**;
  runs tests, validator, builder, opens PR if dist/ diff.
- spdx-changed.yml — runs daily and on workflow_dispatch; supports
  spdx_repo_url and spdx_ref inputs for testing against a fork;
  detects upstream changes, creates keyword stubs for added ids,
  regenerates dist/, generates SQL, opens a single PR with all
  changes.
- propagate-to-platform-deployment.yml — fires on push to main
  touching dist/ or sql/; copies generated artifacts into
  scanoss/platform_deployment and opens a PR there. Requires
  PLATFORM_DEPLOYMENT_TOKEN secret.

Tests:
- tests/test_detect_spdx_changes.py — diff classification + CLI exit codes.
- tests/test_generate_sql.py — SQL quoting, INSERT/UPDATE shape,
  multi-file emission, no-change idempotency.

Docs:
- docs_crypto_algorithms/automation_testing.md — manual setup
  (secret, fork sync), local dry-run procedure, workflow_dispatch
  testing against scanoss-qg/crypto-algorithms, and cleanup.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 10, 2026

Important

Review skipped

Too many files!

This PR contains 296 files, which is 146 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6106e39d-7bc3-4517-8b61-1bc1bb80b048

📥 Commits

Reviewing files that changed from the base of the PR and between 24a39ee and b54d30e.

⛔ Files ignored due to path filters (4)
  • dist/crypto_algorithms_keywords.json is excluded by !**/dist/**
  • dist/crypto_algorithms_linked.json is excluded by !**/dist/**
  • dist/inconsistency_report.json is excluded by !**/dist/**
  • dist/spdx_snapshot.json is excluded by !**/dist/**
📒 Files selected for processing (296)
  • .github/workflows/keywords-changed.yml
  • .github/workflows/propagate-to-platform-deployment.yml
  • .github/workflows/spdx-changed.yml
  • .gitignore
  • .gitmodules
  • README.md
  • definitions_crypto_algorithms/README.md
  • definitions_crypto_algorithms/algorithms/Asymmetric Encryption/blum-goldwasser.yaml
  • definitions_crypto_algorithms/algorithms/Asymmetric Encryption/dhe.yaml
  • definitions_crypto_algorithms/algorithms/Asymmetric Encryption/dhies.yaml
  • definitions_crypto_algorithms/algorithms/Asymmetric Encryption/dsa.yaml
  • definitions_crypto_algorithms/algorithms/Asymmetric Encryption/ecc.yaml
  • definitions_crypto_algorithms/algorithms/Asymmetric Encryption/ecdh.yaml
  • definitions_crypto_algorithms/algorithms/Asymmetric Encryption/ecdsa.yaml
  • definitions_crypto_algorithms/algorithms/Asymmetric Encryption/ecmqv.yaml
  • definitions_crypto_algorithms/algorithms/Asymmetric Encryption/ed25519.yaml
  • definitions_crypto_algorithms/algorithms/Asymmetric Encryption/elgamal.yaml
  • definitions_crypto_algorithms/algorithms/Asymmetric Encryption/luc.yaml
  • definitions_crypto_algorithms/algorithms/Asymmetric Encryption/mqv.yaml
  • definitions_crypto_algorithms/algorithms/Asymmetric Encryption/naccachestern.yaml
  • definitions_crypto_algorithms/algorithms/Asymmetric Encryption/rabin.yaml
  • definitions_crypto_algorithms/algorithms/Asymmetric Encryption/rsa-oaep.yaml
  • definitions_crypto_algorithms/algorithms/Asymmetric Encryption/rsa.yaml
  • definitions_crypto_algorithms/algorithms/Asymmetric Encryption/xtr.yaml
  • definitions_crypto_algorithms/algorithms/Authentication/eccpwd.yaml
  • definitions_crypto_algorithms/algorithms/Authentication/kerberos.yaml
  • definitions_crypto_algorithms/algorithms/Authentication/psk.yaml
  • definitions_crypto_algorithms/algorithms/Block Cipher Modes/cbc.yaml
  • definitions_crypto_algorithms/algorithms/Block Cipher Modes/ccm.yaml
  • definitions_crypto_algorithms/algorithms/Block Cipher Modes/cfb.yaml
  • definitions_crypto_algorithms/algorithms/Block Cipher Modes/ctr.yaml
  • definitions_crypto_algorithms/algorithms/Block Cipher Modes/ecb.yaml
  • definitions_crypto_algorithms/algorithms/Block Cipher Modes/gcm.yaml
  • definitions_crypto_algorithms/algorithms/Block Cipher Modes/ofb.yaml
  • definitions_crypto_algorithms/algorithms/Block Cipher Modes/xts.yaml
  • definitions_crypto_algorithms/algorithms/Certificate Formats/ASN1.yaml
  • definitions_crypto_algorithms/algorithms/Certificate Formats/pgp.yaml
  • definitions_crypto_algorithms/algorithms/Certificate Formats/pkcs12.yaml
  • definitions_crypto_algorithms/algorithms/Certificate Formats/pkcs7.yaml
  • definitions_crypto_algorithms/algorithms/Cryptographic Primitive/xoodyak.yaml
  • definitions_crypto_algorithms/algorithms/Data Clustering/dcc.yaml
  • definitions_crypto_algorithms/algorithms/Digital Signature Algorithm/dss.yaml
  • definitions_crypto_algorithms/algorithms/Digital Signature Algorithm/dstu4145.yaml
  • definitions_crypto_algorithms/algorithms/Digital Signature Algorithm/ecnr.yaml
  • definitions_crypto_algorithms/algorithms/Digital Signature Algorithm/ed448.yaml
  • definitions_crypto_algorithms/algorithms/Digital Signature Algorithm/eddsa.yaml
  • definitions_crypto_algorithms/algorithms/Digital Signature Algorithm/iso9796.yaml
  • definitions_crypto_algorithms/algorithms/Digital Signature Algorithm/rsassapss.yaml
  • definitions_crypto_algorithms/algorithms/Generic curves/gecc.yaml
  • definitions_crypto_algorithms/algorithms/Hash Function/harakav2.yaml
  • definitions_crypto_algorithms/algorithms/Hash Function/kangarootwelve.yaml
  • definitions_crypto_algorithms/algorithms/Hash Function/kupyna.yaml
  • definitions_crypto_algorithms/algorithms/Hash Function/marsupilamifourteen.yaml
  • definitions_crypto_algorithms/algorithms/Hash Function/parallelhash.yaml
  • definitions_crypto_algorithms/algorithms/Hash Function/sm3.yaml
  • definitions_crypto_algorithms/algorithms/Hash Function/tuplehash.yaml
  • definitions_crypto_algorithms/algorithms/Hash Functions/blake2.yaml
  • definitions_crypto_algorithms/algorithms/Hash Functions/blake3.yaml
  • definitions_crypto_algorithms/algorithms/Hash Functions/haval.yaml
  • definitions_crypto_algorithms/algorithms/Hash Functions/keccak.yaml
  • definitions_crypto_algorithms/algorithms/Hash Functions/md160.yaml
  • definitions_crypto_algorithms/algorithms/Hash Functions/md2.yaml
  • definitions_crypto_algorithms/algorithms/Hash Functions/md4.yaml
  • definitions_crypto_algorithms/algorithms/Hash Functions/md5.yaml
  • definitions_crypto_algorithms/algorithms/Hash Functions/md6.yaml
  • definitions_crypto_algorithms/algorithms/Hash Functions/mdc2.yaml
  • definitions_crypto_algorithms/algorithms/Hash Functions/ripemd.yaml
  • definitions_crypto_algorithms/algorithms/Hash Functions/sha1.yaml
  • definitions_crypto_algorithms/algorithms/Hash Functions/sha2.yaml
  • definitions_crypto_algorithms/algorithms/Hash Functions/sha3.yaml
  • definitions_crypto_algorithms/algorithms/Hash Functions/shs.yaml
  • definitions_crypto_algorithms/algorithms/Hash Functions/skein.yaml
  • definitions_crypto_algorithms/algorithms/Hash Functions/ssha.yaml
  • definitions_crypto_algorithms/algorithms/Hash Functions/tiger.yaml
  • definitions_crypto_algorithms/algorithms/Hash Functions/whirlpool.yaml
  • definitions_crypto_algorithms/algorithms/Key Agreement/ansix942.yaml
  • definitions_crypto_algorithms/algorithms/Key Agreement/x25519.yaml
  • definitions_crypto_algorithms/algorithms/Key Agreement/x448.yaml
  • definitions_crypto_algorithms/algorithms/Key Agreement/xdh.yaml
  • definitions_crypto_algorithms/algorithms/Key Derivation Functions/ansix963.yaml
  • definitions_crypto_algorithms/algorithms/Key Derivation Functions/bcrypt.yaml
  • definitions_crypto_algorithms/algorithms/Key Derivation Functions/concatenationkdf.yaml
  • definitions_crypto_algorithms/algorithms/Key Derivation Functions/hkdf.yaml
  • definitions_crypto_algorithms/algorithms/Key Derivation Functions/kdf1.yaml
  • definitions_crypto_algorithms/algorithms/Key Derivation Functions/kdf2.yaml
  • definitions_crypto_algorithms/algorithms/Key Derivation Functions/kdfcounter.yaml
  • definitions_crypto_algorithms/algorithms/Key Derivation Functions/kdfdoublepipeline.yaml
  • definitions_crypto_algorithms/algorithms/Key Derivation Functions/kdffeedback.yaml
  • definitions_crypto_algorithms/algorithms/Key Derivation Functions/kdfsession.yaml
  • definitions_crypto_algorithms/algorithms/Key Derivation Functions/mgf1.yaml
  • definitions_crypto_algorithms/algorithms/Key Derivation Functions/pbe.yaml
  • definitions_crypto_algorithms/algorithms/Key Derivation Functions/pbes1.yaml
  • definitions_crypto_algorithms/algorithms/Key Derivation Functions/pbes2.yaml
  • definitions_crypto_algorithms/algorithms/Key Derivation Functions/pbkdf1.yaml
  • definitions_crypto_algorithms/algorithms/Key Derivation Functions/pbkdf2.yaml
  • definitions_crypto_algorithms/algorithms/Key Derivation Functions/scrypt.yaml
  • definitions_crypto_algorithms/algorithms/Key Encapsulation/rsakem.yaml
  • definitions_crypto_algorithms/algorithms/Key Wrapping/rfc3211wrap.yaml
  • definitions_crypto_algorithms/algorithms/Message Authentication Codes/CMAC.yaml
  • definitions_crypto_algorithms/algorithms/Message Authentication Codes/argon2.yaml
  • definitions_crypto_algorithms/algorithms/Message Authentication Codes/cms.yaml
  • definitions_crypto_algorithms/algorithms/Message Authentication Codes/kmac.yaml
  • definitions_crypto_algorithms/algorithms/Message Authentication Codes/siphash.yaml
  • definitions_crypto_algorithms/algorithms/Password Hashing/mscash.yaml
  • definitions_crypto_algorithms/algorithms/Password Hashing/mscash2.yaml
  • definitions_crypto_algorithms/algorithms/Polynomial Functions/adler32.yaml
  • definitions_crypto_algorithms/algorithms/Polynomial Functions/crc16.yaml
  • definitions_crypto_algorithms/algorithms/Polynomial Functions/crc32.yaml
  • definitions_crypto_algorithms/algorithms/Polynomial Functions/fasthash.yaml
  • definitions_crypto_algorithms/algorithms/Polynomial Functions/fletcher.yaml
  • definitions_crypto_algorithms/algorithms/Polynomial Functions/fnv1.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/bike.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/crystals-kyber.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/dilithium.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/falcon.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/frodokem.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/gemss.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/gmss.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/hqc.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/hss.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/lms.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/mceliece.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/mldsa.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/mlkem.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/ntruencrypt.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/picnic.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/qtesla.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/rainbow.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/sike.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/sphincs+.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/sphincsplus.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/xmss.yaml
  • definitions_crypto_algorithms/algorithms/Post-Quantum Cryptography/xmssmt.yaml
  • definitions_crypto_algorithms/algorithms/Random Number Generation/ansix931.yaml
  • definitions_crypto_algorithms/algorithms/Random Number Generation/csprng.yaml
  • definitions_crypto_algorithms/algorithms/Random Number Generation/drbg.yaml
  • definitions_crypto_algorithms/algorithms/Random Number Generation/fortuna.yaml
  • definitions_crypto_algorithms/algorithms/Random Number Generation/isaac.yaml
  • definitions_crypto_algorithms/algorithms/Random Number Generation/yarrow.yaml
  • definitions_crypto_algorithms/algorithms/Secure Protocols/fcrypt.yaml
  • definitions_crypto_algorithms/algorithms/Secure Protocols/feal.yaml
  • definitions_crypto_algorithms/algorithms/Secure Protocols/gea0-x.yaml
  • definitions_crypto_algorithms/algorithms/Secure Protocols/nimbus.yaml
  • definitions_crypto_algorithms/algorithms/Secure Protocols/seal.yaml
  • definitions_crypto_algorithms/algorithms/Secure Protocols/srp.yaml
  • definitions_crypto_algorithms/algorithms/Secure Protocols/tcrypt.yaml
  • definitions_crypto_algorithms/algorithms/Stream Cipher/hc.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/3des.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/3way.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/aes.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/aria.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/bearlion.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/blowfish.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/camellia.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/cast.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/chacha20.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/cmea.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/cobra.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/des.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/desede.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/f8.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/gost.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/grain.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/hc128.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/hc256.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/hmac.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/ice.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/idea.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/juniper.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/kalyna.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/kazumi.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/khazad.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/lea.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/loki91.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/lucifer.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/misty1.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/multi2.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/noekeon.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/panama.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/quad.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/rabbit.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/rc2.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/rc4-hmac.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/rc4.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/rc5.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/rc6.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/rijndael.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/safer.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/salsa10.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/salsa20.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/sapphire.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/seed.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/serpent.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/shacal.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/shark.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/skipjack.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/sms4.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/snerfu.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/snow.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/sober.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/sosemanuk.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/tdes.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/tea.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/threefish.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/tnepres.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/twofish.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/vmpc.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/wake.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/xtea.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/zipcrypt.yaml
  • definitions_crypto_algorithms/algorithms/Symmetric Encryption/zuc.yaml
  • definitions_crypto_algorithms/algorithms/Zero-Knowledge Proof/zk-snarks.yaml
  • definitions_crypto_algorithms/algorithms/Zero-Knowledge Proof/zk-starks.yaml
  • definitions_crypto_algorithms/spec_crypto_algorithms/definition_template_crypto_algorithm.yaml
  • definitions_crypto_algorithms/spec_crypto_algorithms/description_definition_template_crypto_algorithm.md
  • docs_crypto_algorithms/automation_testing.md
  • external/spdx-crypto
  • keywords/3des.yaml
  • keywords/3way.yaml
  • keywords/ASN1.yaml
  • keywords/X509.yaml
  • keywords/adler32.yaml
  • keywords/aes.yaml
  • keywords/ansix931.yaml
  • keywords/ansix942.yaml
  • keywords/ansix963.yaml
  • keywords/argon2.yaml
  • keywords/aria.yaml
  • keywords/bcrypt.yaml
  • keywords/bearlion.yaml
  • keywords/bike.yaml
  • keywords/blake2.yaml
  • keywords/blake3.yaml
  • keywords/blakex.yaml
  • keywords/blowfish.yaml
  • keywords/blum-goldwasser.yaml
  • keywords/camellia.yaml
  • keywords/cast.yaml
  • keywords/cbc.yaml
  • keywords/ccm.yaml
  • keywords/cfb.yaml
  • keywords/chacha.yaml
  • keywords/chacha20.yaml
  • keywords/cmac.yaml
  • keywords/cmea.yaml
  • keywords/cms.yaml
  • keywords/cobra.yaml
  • keywords/concatenationkdf.yaml
  • keywords/crc16.yaml
  • keywords/crc32.yaml
  • keywords/crystals-kyber.yaml
  • keywords/csprng.yaml
  • keywords/ctr.yaml
  • keywords/dcc.yaml
  • keywords/des.yaml
  • keywords/desede.yaml
  • keywords/dhe.yaml
  • keywords/dhies.yaml
  • keywords/diffiehellman.yaml
  • keywords/dilithium.yaml
  • keywords/drbg.yaml
  • keywords/dsa.yaml
  • keywords/dss.yaml
  • keywords/dstu4145.yaml
  • keywords/ecb.yaml
  • keywords/ecc.yaml
  • keywords/eccpwd.yaml
  • keywords/ecdh.yaml
  • keywords/ecdsa.yaml
  • keywords/ecmqv.yaml
  • keywords/ecnr.yaml
  • keywords/ed25519.yaml
  • keywords/ed448.yaml
  • keywords/eddsa.yaml
  • keywords/elgamal.yaml
  • keywords/f8.yaml
  • keywords/falcon.yaml
  • keywords/fasthash.yaml
  • keywords/fcrypt.yaml
  • keywords/feal.yaml
  • keywords/fletcher.yaml
  • keywords/fnv1.yaml
  • keywords/fortuna.yaml
  • keywords/frodokem.yaml
  • keywords/gcm.yaml
  • keywords/gea0-x.yaml
  • keywords/gecc.yaml
  • keywords/gemss.yaml
  • keywords/gmss.yaml
  • keywords/gost.yaml
  • keywords/grain.yaml
  • keywords/harakav2.yaml
  • keywords/haval.yaml
  • keywords/hc.yaml
  • keywords/hc128.yaml
  • keywords/hc256.yaml

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/spdx-link

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant