Skip to content

Fix/rsa carmichael lambda keygen - #1850

Merged
csxark merged 4 commits into
csxark:mainfrom
Chigael:fix/rsa-carmichael-lambda-keygen
Aug 31, 2026
Merged

Fix/rsa carmichael lambda keygen#1850
csxark merged 4 commits into
csxark:mainfrom
Chigael:fix/rsa-carmichael-lambda-keygen

Conversation

@Chigael

@Chigael Chigael commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Pull Request

Description

This PR fixes Issue #1719 where RSA key derivation computed the private exponent $d$ modulo Euler's totient $\phi(n) = (p - 1)(q - 1)$ rather than Carmichael's totient function $\lambda(n) = \text{lcm}(p - 1, q - 1)$, as mandated by PKCS#1 v2.2 (RFC 8017).While both $\phi(n)$ and $\lambda(n)$ yield mathematically valid private exponents satisfying $e \cdot d \equiv 1 \pmod{\lambda(n)}$, computing $d \pmod{\lambda(n)}$ yields the minimal valid private exponent and aligns with modern RFC specifications. Educational descriptions in both key parsing step notes and the interactive RSA Key Generation Wizard have been expanded to detail both methods.


Related Issue

Closes #1719


Scope

This PR touches exactly one of the following. If it touches more than
one, split it into separate PRs — multi-scope PRs are the pattern that
introduces inconsistent architecture and will not be reviewed as-is.

  • Cipher module (lib/cipher/**)
  • Visualizer/route (app/**, components/**)
  • Worker/protocol (lib/workers/**, hooks/use*Worker.ts)
  • Documentation only (docs/**, *.md, MDX content)
  • Security fix (CSP, key handling, sanitization, dependency CVE)
  • Test-only (tests/**)
  • Config/chore (build, deps, CI)

Changes Made

  • lib/cipher/asymmetric/rsa.ts:
  • Updated parseRsaKey() when 3 key parameters $(p, q, e)$ are provided to derive $d$ via $\text{modInverse}(e, \lambda(n))$ where $\lambda(n) = \text{lcm}(p - 1, q - 1)$.
  • lib/asymmetric/rsaKeyGenerationWizard.ts:
  • Added lcm(a, b) utility function.
  • Updated RsaWizardResult interface to include lambda: number alongside totient: number.
  • Updated validateRsaWizardInput() to check coprimality against $\lambda(n)$ (gcd(e, \lambda(n)) === 1) and verify $e < \lambda(n)$.
  • Updated generateRsaWizard() to calculate $d = \text{modInverse}(e, \lambda(n))$.
  • Updated wizard step explanations to clarify both Euler's totient $\phi(n)$ and Carmichael's lambda $\lambda(n)$.

Testing

  • Unit tests added/updated for every code path changed (not just the happy path).
  • npm test passes locally.
  • npm run typecheck passes locally.
  • npm run lint passes locally.
  • Coverage on any touched lib/cipher/** file stays at or above 80%.
  • E2E/a11y tests added if a route or interactive component changed.

A PR that adds functionality without a corresponding test in the same PR will not be merged. "Will add tests later" is not accepted.

Simulation vs. Live Data

  • I have read the Simulation vs. Live Data Policy: docs/simulation-vs-live-data-policy.md
  • This change does not describe, label, or imply that a simulated operation (reduced parameters, mocked peer, synthetic randomness) is a verified or real cryptographic operation, in code, UI copy, or this PR description.

Screenshots

If applicable, attach screenshots or screen recordings.


Checklist

  • My code follows the project guidelines.
  • I have tested my changes.
  • I have updated the documentation if required.
  • My changes address the related issue.
  • This PR focuses on a single issue.

Applicable Checklist

Complete the checklist matching the scope above, then paste the completed
checklist (or a link to it) here:

  • New cipher -> Cipher Checklist: docs/contribution-checklists.md#1-new-cipher-checklist
  • New visualizer -> Visualizer Checklist: docs/contribution-checklists.md#2-new-visualizer-checklist
  • Security-sensitive -> Security Checklist: docs/contribution-checklists.md#3-security-sensitive-feature-checklist

Architecture Review Checklist

Before adding another domain suite or feature suite, please identify and document the following to prevent code duplication:

  • Existing shared abstractions:
  • Existing persistence mechanism:
  • Existing operation state machine:
  • Existing authorization boundary:
  • Existing error model:
  • Existing telemetry/audit mechanism:

Additional Notes

Add any additional information for reviewers here.

@vercel

vercel Bot commented Aug 31, 2026

Copy link
Copy Markdown

@Chigael is attempting to deploy a commit to the csxark's projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions

Copy link
Copy Markdown
Contributor

🎉 Thank You for Your Contribution

Hello @Chigael,

Thank you for submitting a Pull Request to CryptoViz. We appreciate the time and effort you've invested in contributing to the project.

Your Pull Request has been received successfully and will be reviewed by the maintainers as soon as possible.

📋 Pull Request Checklist

  • ✅ Linked the related issue
  • ✅ No merge conflicts
  • ✅ Synced with the latest main branch
  • ✅ Build passes successfully
  • ✅ All tests pass

Ensuring these requirements are met helps streamline the review process and enables maintainers to review your contribution more efficiently.

❤️ Support CryptoViz

If you find CryptoViz helpful, consider supporting the project by:

  • ⭐ Starring the repository
  • 🍴 Forking the repository
  • 👤 Following Ark on GitHub
  • 💼 Connecting on LinkedIn
  • 🌐 Visiting the Portfolio

Your support helps increase the project's visibility and encourages continued development. Thank you for being a part of the CryptoViz community!

Thank you once again for contributing to CryptoViz. We appreciate your support and look forward to reviewing your contribution.

@coderabbitai

coderabbitai Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 504 files, which is 404 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 5a5c6160-32a9-4231-99b6-a66b0e6f4a47

📥 Commits

Reviewing files that changed from the base of the PR and between e0521fb and 07d5cbd.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (504)
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/workflows/ci.yml
  • .github/workflows/scripts/audit_issues.py
  • .github/workflows/scripts/test_audit_issues.py
  • CONTRIBUTING.md
  • GUIDELINES.md
  • README.md
  • app/advisor/page.tsx
  • app/attacks/aead-nonce-reuse/page.tsx
  • app/attacks/automated-cryptanalysis/page.tsx
  • app/attacks/bellcore-crt/page.tsx
  • app/attacks/differential-cryptanalysis/page.tsx
  • app/attacks/layout.tsx
  • app/attacks/page.tsx
  • app/attacks/rsa/page.tsx
  • app/avalanche/page.tsx
  • app/benchmark/page.tsx
  • app/cipher-identifier/page.tsx
  • app/cipher-lifecycle/page.tsx
  • app/compare/page.tsx
  • app/dashboard/layout.tsx
  • app/dashboard/page.tsx
  • app/encoding-errors/page.tsx
  • app/encoding-toolkit/page.tsx
  • app/glossary/page.tsx
  • app/hash-collision/page.tsx
  • app/layout.tsx
  • app/morse-code/page.tsx
  • app/myth-busters/page.tsx
  • app/offline/layout.tsx
  • app/offline/page.tsx
  • app/page.tsx
  • app/security-recommendation/page.tsx
  • app/substitution-breaker/page.tsx
  • app/visual-cryptography/page.tsx
  • app/visualizer/csidh/page.tsx
  • components/ReedSolomonVisualizer.tsx
  • components/StandardsLibrary.tsx
  • components/attacks/AeadNonceReuseSimulator.tsx
  • components/attacks/AutomatedCryptanalysisWorkbench.tsx
  • components/attacks/LengthExtensionSimulator.tsx
  • components/attacks/MeetInTheMiddleSimulator.tsx
  • components/avalanche/AvalancheVisualizer.tsx
  • components/cipher-sandbox/StageList.tsx
  • components/cipher-sandbox/useSandboxState.ts
  • components/cipher/CipherExecutionController.ts
  • components/cipher/CipherInputPanel.tsx
  • components/cipher/CipherLayout.tsx
  • components/cipher/CipherOptionsPanel.tsx
  • components/cipher/StepAnimator.tsx
  • components/cipher/TraceTransferControls.tsx
  • components/cryptanalysis/CipherIdentifier.tsx
  • components/cryptanalysis/SubstitutionBreaker.tsx
  • components/dashboard/Bookmarks.tsx
  • components/encoding/EncodingExplorer.tsx
  • components/encoding/EncodingToolkit.tsx
  • components/encoding/MorseCodeVisualizer.tsx
  • components/error/RouteErrorUI.tsx
  • components/error/WorkerErrorBoundary.tsx
  • components/hash/HashCollisionFinder.tsx
  • components/kdf/Argon2idVisualizer.tsx
  • components/kdf/ScryptVisualizer.tsx
  • components/layout/footer.tsx
  • components/modes/ModesLab.tsx
  • components/sbox/SBoxGrid.tsx
  • docs/content-security-policy.md
  • docs/contribution-checklists.md
  • docs/rc6-correctness.md
  • docs/testVectors.md
  • eslint.config.mjs
  • fix_all.py
  • fix_compare.py
  • hooks/useCipherWorker.ts
  • hooks/useCryptoSonifier.ts
  • lib/accessibility/A11yQueue.tsx
  • lib/advisor/useCaseRecommendationEngine.ts
  • lib/asymmetric/rsaKeyGenerationWizard.ts
  • lib/attacks/birthdayAttack.ts
  • lib/attacks/bruteForce.ts
  • lib/attacks/rsaAttacks.ts
  • lib/cipher/aead-utils.ts
  • lib/cipher/asymmetric/asymmetricInput.ts
  • lib/cipher/asymmetric/bbs-plus.ts
  • lib/cipher/asymmetric/bike.ts
  • lib/cipher/asymmetric/blind-rsa.ts
  • lib/cipher/asymmetric/bls.ts
  • lib/cipher/asymmetric/boneh-franklin-ibe.ts
  • lib/cipher/asymmetric/chor-rivest.ts
  • lib/cipher/asymmetric/cramer-shoup.ts
  • lib/cipher/asymmetric/csidh.ts
  • lib/cipher/asymmetric/dh.ts
  • lib/cipher/asymmetric/dsa.ts
  • lib/cipher/asymmetric/ecc.ts
  • lib/cipher/asymmetric/ecdsa.ts
  • lib/cipher/asymmetric/ecies.ts
  • lib/cipher/asymmetric/ed25519.ts
  • lib/cipher/asymmetric/ed448.ts
  • lib/cipher/asymmetric/elgamal-signature.ts
  • lib/cipher/asymmetric/elgamal.ts
  • lib/cipher/asymmetric/falcon.ts
  • lib/cipher/asymmetric/frodokem.ts
  • lib/cipher/asymmetric/ggh.ts
  • lib/cipher/asymmetric/goldwasser-micali.ts
  • lib/cipher/asymmetric/gost-r34-10.ts
  • lib/cipher/asymmetric/hqc.ts
  • lib/cipher/asymmetric/kcdsa.ts
  • lib/cipher/asymmetric/lamport-wots.ts
  • lib/cipher/asymmetric/lms.ts
  • lib/cipher/asymmetric/mceliece.ts
  • lib/cipher/asymmetric/merkle-hellman.ts
  • lib/cipher/asymmetric/ml-dsa.ts
  • lib/cipher/asymmetric/ml-kem.ts
  • lib/cipher/asymmetric/mqv.ts
  • lib/cipher/asymmetric/niederreiter.ts
  • lib/cipher/asymmetric/ntru.ts
  • lib/cipher/asymmetric/ntruprime.ts
  • lib/cipher/asymmetric/okamoto-uchiyama.ts
  • lib/cipher/asymmetric/opaque.ts
  • lib/cipher/asymmetric/paillier.ts
  • lib/cipher/asymmetric/parameterValidation.ts
  • lib/cipher/asymmetric/rabin.ts
  • lib/cipher/asymmetric/rainbow.ts
  • lib/cipher/asymmetric/regev-lwe.ts
  • lib/cipher/asymmetric/rsa.ts
  • lib/cipher/asymmetric/saber.ts
  • lib/cipher/asymmetric/schnorr.ts
  • lib/cipher/asymmetric/shamir-secret-sharing.ts
  • lib/cipher/asymmetric/sidh.ts
  • lib/cipher/asymmetric/sm2.ts
  • lib/cipher/asymmetric/sphincs-plus.ts
  • lib/cipher/asymmetric/sqisign.ts
  • lib/cipher/asymmetric/x25519.ts
  • lib/cipher/asymmetric/x448.ts
  • lib/cipher/asymmetric/xmss.ts
  • lib/cipher/cipherRegistry.ts
  • lib/cipher/classical/adfgvx.ts
  • lib/cipher/classical/atbash.ts
  • lib/cipher/classical/autokey.ts
  • lib/cipher/classical/beaufort.ts
  • lib/cipher/classical/bifid.ts
  • lib/cipher/classical/caesar.ts
  • lib/cipher/classical/columnar-transposition.ts
  • lib/cipher/classical/four-square.ts
  • lib/cipher/classical/hill.ts
  • lib/cipher/classical/nihilist.ts
  • lib/cipher/classical/playfair.ts
  • lib/cipher/classical/polybius.ts
  • lib/cipher/classical/porta.ts
  • lib/cipher/classical/railfence.ts
  • lib/cipher/classical/rot13.ts
  • lib/cipher/classical/vigenere.ts
  • lib/cipher/collections.ts
  • lib/cipher/fpe/ff1.ts
  • lib/cipher/hash/argon2.ts
  • lib/cipher/hash/ascon-hash.ts
  • lib/cipher/hash/bcrypt.ts
  • lib/cipher/hash/blake.ts
  • lib/cipher/hash/blake2b.ts
  • lib/cipher/hash/blake2s.ts
  • lib/cipher/hash/blake3.ts
  • lib/cipher/hash/bmw.ts
  • lib/cipher/hash/cmac.ts
  • lib/cipher/hash/cubehash.ts
  • lib/cipher/hash/echo.ts
  • lib/cipher/hash/edon-r.ts
  • lib/cipher/hash/esch.ts
  • lib/cipher/hash/fugue.ts
  • lib/cipher/hash/gost-r34-11-94.ts
  • lib/cipher/hash/grostl.ts
  • lib/cipher/hash/hamsi.ts
  • lib/cipher/hash/haraka.ts
  • lib/cipher/hash/has160.ts
  • lib/cipher/hash/haval.ts
  • lib/cipher/hash/hkdf.ts
  • lib/cipher/hash/hmac.ts
  • lib/cipher/hash/jh.ts
  • lib/cipher/hash/kangarootwelve.ts
  • lib/cipher/hash/kupyna.ts
  • lib/cipher/hash/lsh256.ts
  • lib/cipher/hash/luffa.ts
  • lib/cipher/hash/md2.ts
  • lib/cipher/hash/md4.ts
  • lib/cipher/hash/md5.ts
  • lib/cipher/hash/n-hash.ts
  • lib/cipher/hash/panama.ts
  • lib/cipher/hash/parallel-hash.ts
  • lib/cipher/hash/pbkdf2.ts
  • lib/cipher/hash/poly1305.ts
  • lib/cipher/hash/radiogatun.ts
  • lib/cipher/hash/ripemd128.ts
  • lib/cipher/hash/ripemd160.ts
  • lib/cipher/hash/ripemd256-320.ts
  • lib/cipher/hash/sha1.ts
  • lib/cipher/hash/sha2-truncated.ts
  • lib/cipher/hash/sha256.ts
  • lib/cipher/hash/sha3.ts
  • lib/cipher/hash/sha512.ts
  • lib/cipher/hash/shabal.ts
  • lib/cipher/hash/shake.ts
  • lib/cipher/hash/shavite3.ts
  • lib/cipher/hash/simd.ts
  • lib/cipher/hash/skein.ts
  • lib/cipher/hash/sm3.ts
  • lib/cipher/hash/snefru.ts
  • lib/cipher/hash/streebog.ts
  • lib/cipher/hash/tiger.ts
  • lib/cipher/hash/whirlpool.ts
  • lib/cipher/hash/xxhash.ts
  • lib/cipher/instrumentedPipeline.ts
  • lib/cipher/kalyna/kalynaTables.ts
  • lib/cipher/matrixData.ts
  • lib/cipher/parameterValidation.ts
  • lib/cipher/pbe.ts
  • lib/cipher/pluginRegistry.ts
  • lib/cipher/realWorldUses.ts
  • lib/cipher/registry.ts
  • lib/cipher/registryMetadata.ts
  • lib/cipher/sandbox/cipherSandboxEngine.ts
  • lib/cipher/sandbox/presets.ts
  • lib/cipher/stepVirtualization.ts
  • lib/cipher/symmetric/3des.ts
  • lib/cipher/symmetric/3way.ts
  • lib/cipher/symmetric/a5-1.ts
  • lib/cipher/symmetric/acorn.ts
  • lib/cipher/symmetric/aegis128l.ts
  • lib/cipher/symmetric/aes-ccm.ts
  • lib/cipher/symmetric/aes-gcm.ts
  • lib/cipher/symmetric/aes-xts.ts
  • lib/cipher/symmetric/aes.ts
  • lib/cipher/symmetric/anubis.ts
  • lib/cipher/symmetric/aria.ts
  • lib/cipher/symmetric/ascon.ts
  • lib/cipher/symmetric/blowfish.ts
  • lib/cipher/symmetric/camellia.ts
  • lib/cipher/symmetric/cast128.ts
  • lib/cipher/symmetric/chacha20-poly1305.ts
  • lib/cipher/symmetric/chacha20.ts
  • lib/cipher/symmetric/clefia.ts
  • lib/cipher/symmetric/craft.ts
  • lib/cipher/symmetric/crypton.ts
  • lib/cipher/symmetric/deal.ts
  • lib/cipher/symmetric/deoxys.ts
  • lib/cipher/symmetric/des-x.ts
  • lib/cipher/symmetric/des.ts
  • lib/cipher/symmetric/e0.ts
  • lib/cipher/symmetric/e2.ts
  • lib/cipher/symmetric/enigma.ts
  • lib/cipher/symmetric/feal.ts
  • lib/cipher/symmetric/gift.ts
  • lib/cipher/symmetric/gost.ts
  • lib/cipher/symmetric/grain128.ts
  • lib/cipher/symmetric/hc128.ts
  • lib/cipher/symmetric/hierocrypt3.ts
  • lib/cipher/symmetric/idea.ts
  • lib/cipher/symmetric/kalyna.ts
  • lib/cipher/symmetric/kasumi.ts
  • lib/cipher/symmetric/khufu.ts
  • lib/cipher/symmetric/kuznyechik.ts
  • lib/cipher/symmetric/lblock.ts
  • lib/cipher/symmetric/lea.ts
  • lib/cipher/symmetric/led.ts
  • lib/cipher/symmetric/loki97.ts
  • lib/cipher/symmetric/lucifer.ts
  • lib/cipher/symmetric/mantis.ts
  • lib/cipher/symmetric/mars.ts
  • lib/cipher/symmetric/mickey.ts
  • lib/cipher/symmetric/midori.ts
  • lib/cipher/symmetric/misty1.ts
  • lib/cipher/symmetric/noekeon.ts
  • lib/cipher/symmetric/otp.ts
  • lib/cipher/symmetric/piccolo.ts
  • lib/cipher/symmetric/present.ts
  • lib/cipher/symmetric/prince.ts
  • lib/cipher/symmetric/publishedCipherVectors.ts
  • lib/cipher/symmetric/rabbit.ts
  • lib/cipher/symmetric/rc2.ts
  • lib/cipher/symmetric/rc4.ts
  • lib/cipher/symmetric/rc5.ts
  • lib/cipher/symmetric/rc6.ts
  • lib/cipher/symmetric/rectangle.ts
  • lib/cipher/symmetric/romulus.ts
  • lib/cipher/symmetric/safer-plus.ts
  • lib/cipher/symmetric/salsa20.ts
  • lib/cipher/symmetric/saturnin.ts
  • lib/cipher/symmetric/schwaemm.ts
  • lib/cipher/symmetric/seal.ts
  • lib/cipher/symmetric/seed.ts
  • lib/cipher/symmetric/serpent-utils.ts
  • lib/cipher/symmetric/serpent.ts
  • lib/cipher/symmetric/shark.ts
  • lib/cipher/symmetric/simon.ts
  • lib/cipher/symmetric/simon32.ts
  • lib/cipher/symmetric/skinny.ts
  • lib/cipher/symmetric/skipjack.ts
  • lib/cipher/symmetric/sm4.ts
  • lib/cipher/symmetric/sosemanuk.ts
  • lib/cipher/symmetric/speck.ts
  • lib/cipher/symmetric/square.ts
  • lib/cipher/symmetric/tea.ts
  • lib/cipher/symmetric/threefish.ts
  • lib/cipher/symmetric/tinyjambu.ts
  • lib/cipher/symmetric/trivium.ts
  • lib/cipher/symmetric/turing.ts
  • lib/cipher/symmetric/twine.ts
  • lib/cipher/symmetric/twofish.ts
  • lib/cipher/symmetric/wake.ts
  • lib/cipher/symmetric/xchacha20.ts
  • lib/cipher/symmetric/xoodyak.ts
  • lib/cipher/symmetric/xor.ts
  • lib/cipher/symmetric/xsalsa20.ts
  • lib/cipher/symmetric/xtea.ts
  • lib/cipher/symmetric/xxtea.ts
  • lib/cipher/symmetric/zuc.ts
  • lib/cipher/types.ts
  • lib/cryptanalysis/cipherIdentifier.ts
  • lib/cryptanalysis/substitutionBreaker.ts
  • lib/crypto/encoding.ts
  • lib/crypto/jwtDecoder.test.ts
  • lib/crypto/jwtDecoder.ts
  • lib/crypto/totp.test.ts
  • lib/crypto/totp.ts
  • lib/crypto/uuid.test.ts
  • lib/crypto/uuid.ts
  • lib/encoding/base85.ts
  • lib/encoding/baseEncoding.ts
  • lib/encoding/morseCode.ts
  • lib/formatters.ts
  • lib/hash/collisionFinder.ts
  • lib/i18n/locales/en.ts
  • lib/math/galoisField.ts
  • lib/performance/baseline.ts
  • lib/performance/profiler.ts
  • lib/performance/reporter.ts
  • lib/pipeline/pipelineEngine.ts
  • lib/resources/cryptographyVideoLibrary.ts
  • lib/security/inputSanitization.ts
  • lib/security/passwordAnalyzer.test.ts
  • lib/security/passwordAnalyzer.ts
  • lib/security/passwordGenerator.test.ts
  • lib/security/passwordGenerator.ts
  • lib/security/workloadLimits.ts
  • lib/signal/signalRatchetEngine.ts
  • lib/storage/secureKeyStore.ts
  • lib/testVectors/conformanceVectors/README.md
  • lib/testVectors/conformanceVectors/aes.json
  • lib/testVectors/conformanceVectors/sha256.json
  • lib/testVectors/dispatch.ts
  • lib/testVectors/runner.ts
  • lib/testing/conformanceHarness.ts
  • lib/testing/propertyFuzzFramework.ts
  • lib/testing/testVectorFormat.ts
  • lib/trace/index.ts
  • lib/trace/replayEngine.ts
  • lib/trace/serialization.ts
  • lib/trace/stateDiff.ts
  • lib/trace/traceBuffer.ts
  • lib/trace/traceSchema.ts
  • lib/trace/validators.ts
  • lib/utils/cipherTrace.ts
  • lib/utils/constantTime.ts
  • lib/utils/encoding.ts
  • lib/utils/errors.ts
  • lib/utils/favoriteCiphers.ts
  • lib/utils/logger.ts
  • lib/utils/security.ts
  • lib/validation/bech32.ts
  • lib/validation/index.ts
  • lib/validation/invariantSchema.ts
  • lib/validation/invariantValidator.ts
  • lib/validation/validators/arithmeticInvariants.ts
  • lib/validation/validators/cipherInvariants.ts
  • lib/validation/validators/hashInvariants.ts
  • lib/workers/cipher.worker.ts
  • lib/workers/cryptoWorkerClient.ts
  • lib/workers/pool.ts
  • lib/workers/sharedPool.ts
  • package.json
  • playwright.config.ts
  • public/sw.js
  • scripts/check-bundle-budget.mjs
  • scripts/generate-sw-precache.mjs
  • scripts/run-conformance-tests.mjs
  • scripts/standardize-cipher-jsdoc.mjs
  • scripts/validate-ci-pipeline.mjs
  • tests/conformance/conformanceHarness.test.ts
  • tests/fixtures/property-regressions.json
  • tests/helpers/visualizerContractHarness.ts
  • tests/math/galoisField.test.ts
  • tests/security/ci-pipeline.test.ts
  • tests/security/e2e-fuzzing.spec.ts
  • tests/security/headers.test.ts
  • tests/security/js-yaml-cve-2026-59870.test.ts
  • tests/security/keyWipe.test.ts
  • tests/security/nanoid-cve-infinite-loop.test.ts
  • tests/security/npm-standardization.test.ts
  • tests/security/security.test.ts
  • tests/setup/workerMock.ts
  • tests/unit/a11y/A11yQueue.test.tsx
  • tests/unit/a11y/CipherVisualizerA11y.test.tsx
  • tests/unit/accessibility/sonifier.test.ts
  • tests/unit/advisor/useCaseRecommendationEngine.test.ts
  • tests/unit/asymmetric/bbs-plus.test.ts
  • tests/unit/asymmetric/blind-rsa.test.ts
  • tests/unit/asymmetric/boneh-franklin-ibe.test.ts
  • tests/unit/asymmetric/chor-rivest.test.ts
  • tests/unit/asymmetric/csidh.test.ts
  • tests/unit/asymmetric/ecdsa.test.ts
  • tests/unit/asymmetric/ecies.test.ts
  • tests/unit/asymmetric/elgamal.test.ts
  • tests/unit/asymmetric/goldwasser-micali.test.ts
  • tests/unit/asymmetric/merkle-hellman.test.ts
  • tests/unit/asymmetric/okamoto-uchiyama.test.ts
  • tests/unit/asymmetric/opaque.test.ts
  • tests/unit/asymmetric/paillier.test.ts
  • tests/unit/asymmetric/rabin.test.ts
  • tests/unit/asymmetric/rsa.test.ts
  • tests/unit/asymmetric/saber.test.ts
  • tests/unit/asymmetric/sidh.test.ts
  • tests/unit/attacks/birthdayAttack.test.ts
  • tests/unit/attacks/bruteForce.test.ts
  • tests/unit/attacks/rsaAttacks.test.ts
  • tests/unit/baseEncoding.test.ts
  • tests/unit/cipher-jsdocCoverage.test.ts
  • tests/unit/cipher-registry-provenance.test.ts
  • tests/unit/cipher/fastCheckHelpers.ts
  • tests/unit/cipher/propertyFuzzHarness.test.ts
  • tests/unit/cipher/propertyRegressions.test.ts
  • tests/unit/cipher/stepVirtualization.test.ts
  • tests/unit/cipher/traceBuffer.test.ts
  • tests/unit/cipherComparison.test.ts
  • tests/unit/cipherIdentifier.test.ts
  • tests/unit/cipherParameterValidation.test.ts
  • tests/unit/cipherTrace.test.ts
  • tests/unit/classical/adfgvx.test.ts
  • tests/unit/classical/autokey.test.ts
  • tests/unit/classical/bifid.test.ts
  • tests/unit/classical/columnar-transposition.test.ts
  • tests/unit/classical/nihilist.test.ts
  • tests/unit/classical/playfair.test.ts
  • tests/unit/classical/polybius.test.ts
  • tests/unit/classical/railfence.test.ts
  • tests/unit/collisionFinder.test.ts
  • tests/unit/components/ModesLab.test.tsx
  • tests/unit/components/SBoxExplorer.test.tsx
  • tests/unit/components/attacks/AttackControlBar.test.tsx
  • tests/unit/components/avalanche/Avalanche.test.tsx
  • tests/unit/components/cipher/CipherExecutionController.test.ts
  • tests/unit/encoding/base85.test.ts
  • tests/unit/formatters.test.ts
  • tests/unit/hash/edon-r.test.ts
  • tests/unit/hash/esch.test.ts
  • tests/unit/hash/parallel-hash.test.ts
  • tests/unit/hash/shavite3.test.ts
  • tests/unit/hash/simd.test.ts
  • tests/unit/morseCode.test.ts
  • tests/unit/offline/OfflinePackPage.test.tsx
  • tests/unit/offline/swPrecache.test.ts
  • tests/unit/pipeline/pipelineEngine.test.ts
  • tests/unit/protocols/srp6a.test.ts
  • tests/unit/random/hmacDrbg.test.ts
  • tests/unit/security/workloadLimits.test.ts
  • tests/unit/substitutionBreaker.test.ts
  • tests/unit/symmetric/acorn.test.ts
  • tests/unit/symmetric/aegis128l.test.ts
  • tests/unit/symmetric/craft.test.ts
  • tests/unit/symmetric/debug_rounds.ts
  • tests/unit/symmetric/deoxys.test.ts
  • tests/unit/symmetric/e0.test.ts
  • tests/unit/symmetric/hierocrypt3.test.ts
  • tests/unit/symmetric/hierocrypt3_debug.test.ts
  • tests/unit/symmetric/idea.test.ts
  • tests/unit/symmetric/issue-1461-conformance.test.ts
  • tests/unit/symmetric/mars.test.ts
  • tests/unit/symmetric/piccolo.test.ts
  • tests/unit/symmetric/rc6.test.ts
  • tests/unit/symmetric/romulus.test.ts
  • tests/unit/symmetric/saturnin.test.ts
  • tests/unit/symmetric/schwaemm.test.ts
  • tests/unit/symmetric/skipjack.test.ts
  • tests/unit/symmetric/tinyjambu.test.ts
  • tests/unit/symmetric/twofish.test.ts
  • tests/unit/symmetric/xoodyak.test.ts
  • tests/unit/trace/stateDiff.test.ts
  • tests/unit/utils/citationRegistry.test.ts
  • tests/unit/utils/constantTime.fuzz.test.ts
  • tests/unit/validation/bech32.test.ts
  • tests/unit/vectors/katSuites.test.ts
  • tests/unit/visual/visualRegressionConfig.test.ts
  • tests/unit/workers/MessageChannelFuzz.test.ts
  • tests/unit/workers/MessageChannelMock.test.ts
  • tests/unit/workers/MessageChannelTransfer.test.ts
  • tests/unit/workers/MessagePortSerialization.fuzz.test.ts
  • tests/unit/workers/PriorityWorkerPool.test.ts
  • tests/unit/workers/StructuredCloneSerialization.fuzz.test.ts
  • tests/unit/workers/WorkerIntegration.test.ts
  • tests/unit/workers/cipherWorker.test.ts
  • tests/unit/workers/fallbackSandbox.e2e.test.ts
  • tests/unit/workers/fallbackSandbox.fuzz.test.ts
  • tests/unit/workers/fallbackSandbox.test.ts
  • tests/unit/workers/stepTransfer.test.ts
  • tests/visual/README.md
  • tests/visual/diagrams.spec.ts
  • types/worker.ts
  • apps/cli/main.py

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


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.

@csxark csxark added ECSoC26 Elite Coders Summer of Code 2026 good-issue and removed needs review labels Aug 31, 2026
@csxark
csxark merged commit 392068c into csxark:main Aug 31, 2026
4 of 10 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

🎉 Pull Request Merged

Hello @Chigael,

Thank you for your contribution to CryptoViz. Your Pull Request has been reviewed and successfully merged into the project.

We sincerely appreciate the time and effort you invested in improving the project. Contributions like yours help make CryptoViz better for the entire community.

We look forward to your future contributions and hope to collaborate with you again.

❤️ Support CryptoViz

If you find CryptoViz helpful, consider supporting the project by:

  • ⭐ Starring the repository
  • 🍴 Forking the repository
  • 👤 Following Ark on GitHub
  • 💼 Connecting on LinkedIn
  • 🌐 Visiting the Portfolio

Your support helps increase the project's visibility and encourages continued development. Thank you for being a part of the CryptoViz community!

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

Labels

ECSoC26-L1 ECSoC26 Elite Coders Summer of Code 2026 good-issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CRYPTO/MATH] RSA Keygen Calculates Euler Totient phi(n) Rather Than Carmichael Lambda lambda(n)

2 participants