| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:d8b63d0f-7a1c-e740-4a93-f44726ae2122 |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | CDC8:C61B2:4F3D67:6FF322:6A4CA63D |
| html-safe-nonce | 731e50eca742d4d797382bb10d462fc3706ceec4c71e222a2abe5c249164b216 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDREM4OkM2MUIyOjRGM0Q2Nzo2RkYzMjI6NkE0Q0E2M0QiLCJ2aXNpdG9yX2lkIjoiMjU0ODM3MTA2OTY0ODgwNzQ4NSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | e49666b97f39ef0e0e1d8a95d6c0e9f255415c19eecd2d66757d8560cc0551ad |
| hovercard-subject-tag | pull_request:3579226758 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | ///pull_requests/show/files |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/nodejs/node/pull/62924/files |
| twitter:image | https://avatars.githubusercontent.com/u/241506?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/241506?s=400&v=4 |
| og:image:alt | Refactors Node.js' Web Crypto CryptoKey implementation to decouple it from KeyObject by moving CryptoKey's internal-slot storage into a new native NativeCryptoKey base and updating internal... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 3d11bb817438277de2a940854450e83a7d32b6aeb5014e9e6b00a6423900251c |
| turbo-cache-control | no-preview |
| diff-view | unified |
| go-import | github.com/nodejs/node git https://github.com/nodejs/node.git |
| octolytics-dimension-user_id | 9950313 |
| octolytics-dimension-user_login | nodejs |
| octolytics-dimension-repository_id | 27193779 |
| octolytics-dimension-repository_nwo | nodejs/node |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 27193779 |
| octolytics-dimension-repository_network_root_nwo | nodejs/node |
| turbo-body-classes | logged-out env-production page-responsive full-width |
| disable-turbo | true |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | ae90d426644ca15e89bacceb72e51f4e9dbf85f7 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
| Skip to content | https://github.com/nodejs/node/pull/62924/files#start-of-content |
|
| https://github.com/ |
|
Sign in
| https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fnodejs%2Fnode%2Fpull%2F62924%2Ffiles |
| GitHub CopilotWrite better code with AI | https://github.com/features/copilot |
| GitHub Copilot appDirect agents from issue to merge | https://github.com/features/ai/github-app |
| MCP RegistryNewIntegrate external tools | https://github.com/mcp |
| ActionsAutomate any workflow | https://github.com/features/actions |
| CodespacesInstant dev environments | https://github.com/features/codespaces |
| IssuesPlan and track work | https://github.com/features/issues |
| Code ReviewManage code changes | https://github.com/features/code-review |
| GitHub Advanced SecurityFind and fix vulnerabilities | https://github.com/security/advanced-security |
| Code securitySecure your code as you build | https://github.com/security/advanced-security/code-security |
| Secret protectionStop leaks before they start | https://github.com/security/advanced-security/secret-protection |
| Why GitHub | https://github.com/why-github |
| Documentation | https://docs.github.com |
| Blog | https://github.blog |
| Changelog | https://github.blog/changelog |
| Marketplace | https://github.com/marketplace |
| View all features | https://github.com/features |
| Enterprises | https://github.com/enterprise |
| Small and medium teams | https://github.com/team |
| Startups | https://github.com/enterprise/startups |
| Nonprofits | https://github.com/solutions/industry/nonprofits |
| App Modernization | https://github.com/solutions/use-case/app-modernization |
| DevSecOps | https://github.com/solutions/use-case/devsecops |
| DevOps | https://github.com/solutions/use-case/devops |
| CI/CD | https://github.com/solutions/use-case/ci-cd |
| View all use cases | https://github.com/solutions/use-case |
| Healthcare | https://github.com/solutions/industry/healthcare |
| Financial services | https://github.com/solutions/industry/financial-services |
| Manufacturing | https://github.com/solutions/industry/manufacturing |
| Government | https://github.com/solutions/industry/government |
| View all industries | https://github.com/solutions/industry |
| View all solutions | https://github.com/solutions |
| AI | https://github.com/resources/articles?topic=ai |
| Software Development | https://github.com/resources/articles?topic=software-development |
| DevOps | https://github.com/resources/articles?topic=devops |
| Security | https://github.com/resources/articles?topic=security |
| View all topics | https://github.com/resources/articles |
| Customer stories | https://github.com/customer-stories |
| Events & webinars | https://github.com/resources/events |
| Ebooks & reports | https://github.com/resources/whitepapers |
| Business insights | https://github.com/solutions/executive-insights |
| GitHub Skills | https://skills.github.com |
| Documentation | https://docs.github.com |
| Customer support | https://support.github.com |
| Community forum | https://github.com/orgs/community/discussions |
| Trust center | https://github.com/trust-center |
| Partners | https://github.com/partners |
| View all resources | https://github.com/resources |
| GitHub SponsorsFund open source developers | https://github.com/sponsors |
| Security Lab | https://securitylab.github.com |
| Maintainer Community | https://maintainers.github.com |
| Accelerator | https://github.com/accelerator |
| GitHub Stars | https://stars.github.com |
| Archive Program | https://archiveprogram.github.com |
| Topics | https://github.com/topics |
| Trending | https://github.com/trending |
| Collections | https://github.com/collections |
| Enterprise platformAI-powered developer platform | https://github.com/enterprise |
| GitHub Advanced SecurityEnterprise-grade security features | https://github.com/security/advanced-security |
| Copilot for BusinessEnterprise-grade AI features | https://github.com/features/copilot/copilot-business |
| Premium SupportEnterprise-grade 24/7 support | https://github.com/premium-support |
| Pricing | https://github.com/pricing |
| Search syntax tips | https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax |
| documentation | https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax |
|
Sign in
| https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fnodejs%2Fnode%2Fpull%2F62924%2Ffiles |
|
Sign up
| https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=nodejs%2Fnode |
| Reload | https://github.com/nodejs/node/pull/62924/files |
| Reload | https://github.com/nodejs/node/pull/62924/files |
| Reload | https://github.com/nodejs/node/pull/62924/files |
| Please reload this page | https://github.com/nodejs/node/pull/62924/files |
|
nodejs
| https://github.com/nodejs |
| node | https://github.com/nodejs/node |
| Please reload this page | https://github.com/nodejs/node/pull/62924/files |
|
Notifications
| https://github.com/login?return_to=%2Fnodejs%2Fnode |
|
Fork
36k
| https://github.com/login?return_to=%2Fnodejs%2Fnode |
|
Star
118k
| https://github.com/login?return_to=%2Fnodejs%2Fnode |
|
Code
| https://github.com/nodejs/node |
|
Issues
1.4k
| https://github.com/nodejs/node/issues |
|
Pull requests
964
| https://github.com/nodejs/node/pulls |
|
Actions
| https://github.com/nodejs/node/actions |
|
Projects
| https://github.com/nodejs/node/projects |
|
Security and quality
0
| https://github.com/nodejs/node/security |
|
Insights
| https://github.com/nodejs/node/pulse |
|
Code
| https://github.com/nodejs/node |
|
Issues
| https://github.com/nodejs/node/issues |
|
Pull requests
| https://github.com/nodejs/node/pulls |
|
Actions
| https://github.com/nodejs/node/actions |
|
Projects
| https://github.com/nodejs/node/projects |
|
Security and quality
| https://github.com/nodejs/node/security |
|
Insights
| https://github.com/nodejs/node/pulse |
| Sign up for GitHub
| https://github.com/signup?return_to=%2Fnodejs%2Fnode%2Fissues%2Fnew%2Fchoose |
| terms of service | https://docs.github.com/terms |
| privacy statement | https://docs.github.com/privacy |
| Sign in | https://github.com/login?return_to=%2Fnodejs%2Fnode%2Fissues%2Fnew%2Fchoose |
| panva | https://github.com/panva |
| nodejs:main | https://github.com/nodejs/node/tree/main |
| panva:native-cryptokey | https://github.com/panva/node/tree/native-cryptokey |
|
Conversation
29
| https://github.com/nodejs/node/pull/62924 |
|
Commits
11
| https://github.com/nodejs/node/pull/62924/commits |
|
Checks
56
| https://github.com/nodejs/node/pull/62924/checks |
|
Files changed
| https://github.com/nodejs/node/pull/62924/files |
| Please reload this page | https://github.com/nodejs/node/pull/62924/files |
|
src: decouple KeyObject and CryptoKey and move CryptoKey to src
| https://github.com/nodejs/node/pull/62924/files#top |
|
Show all changes
11 commits
| https://github.com/nodejs/node/pull/62924/files |
|
887ef02
src: decouple KeyObject and CryptoKey and move CryptoKey to src
panva Apr 24, 2026
| https://github.com/nodejs/node/pull/62924/commits/887ef02747c9b2ec08b16f670059815e7fb70e9d |
|
9d88287
src,crypto: add NativeCryptoKey
panva Apr 24, 2026
| https://github.com/nodejs/node/pull/62924/commits/9d882871729fa85611f83922f5748f7e051347c5 |
|
bf5a786
lib,crypto: rewire CryptoKey on the native class
panva Apr 24, 2026
| https://github.com/nodejs/node/pull/62924/commits/bf5a786c95873b7190f1d053c33c81e130344581 |
|
0f11a37
lib,crypto: migrate algorithm modules to native CryptoKey
panva Apr 24, 2026
| https://github.com/nodejs/node/pull/62924/commits/0f11a3745461d0f4226ab67baf11316d41cf78e9 |
|
9beeb44
src,crypto: relax RSA/EC keygen arg checks
panva Apr 24, 2026
| https://github.com/nodejs/node/pull/62924/commits/9beeb44929b826c77f7fe5f2fd94a6751c6c608e |
|
26c2d54
lib,crypto: validate HkdfParams info length early
panva Apr 24, 2026
| https://github.com/nodejs/node/pull/62924/commits/26c2d547d78d3290b7843377ad60f126052626ac |
|
7684ddb
lib,crypto: add early structural JWK validation
panva Apr 24, 2026
| https://github.com/nodejs/node/pull/62924/commits/7684ddba84fe9548ef72a6e157397eb0c2d7ea56 |
|
d618239
test: add CryptoKey class regression tests
panva Apr 24, 2026
| https://github.com/nodejs/node/pull/62924/commits/d6182395cb520a6f730535bf710e44570ef15b5b |
|
3b9d06a
benchmark: add Web Crypto sign/verify benchmarks
panva Apr 24, 2026
| https://github.com/nodejs/node/pull/62924/commits/3b9d06aac4d06a40ebdcf50ef29a9b8a988216ab |
|
cbe2cd1
doc: document native CryptoKey backing
panva Apr 25, 2026
| https://github.com/nodejs/node/pull/62924/commits/cbe2cd1be9017fa99e5f9d1ddb6c9c9f09a76038 |
|
aedb3e4
src,lib: switch usages internal slot to a bitmask
panva Apr 25, 2026
| https://github.com/nodejs/node/pull/62924/commits/aedb3e46057e71493084d697013a67ac0c7e0b48 |
|
Clear filters
| https://github.com/nodejs/node/pull/62924/files |
| Please reload this page | https://github.com/nodejs/node/pull/62924/files |
| Please reload this page | https://github.com/nodejs/node/pull/62924/files |
|
webcrypto-sign.js
| https://github.com/nodejs/node/pull/62924/files#diff-c3489bf8138829fabd047ce5114da200400982948d0b1ef6828f8c49786e5d71 |
|
webcrypto-verify.js
| https://github.com/nodejs/node/pull/62924/files#diff-f4f5d2af68898af8faf5b395411f73e9677312317e9f097e785dfaddcdcd5b07 |
|
eslint.config_partial.mjs
| https://github.com/nodejs/node/pull/62924/files#diff-89eb5442de2dcd59f1f3932873799b3f49d48e4ce12e7c003bfa9d5bd45a03a5 |
|
aes.js
| https://github.com/nodejs/node/pull/62924/files#diff-60dc1451af2067da77efcdd065f1f10b85e41d6bd0491eaf46265f074f7066d5 |
|
argon2.js
| https://github.com/nodejs/node/pull/62924/files#diff-66ada0fb7de4a5f998d403d4403893b4b058896cb8cd1430f02967913b2611ee |
|
cfrg.js
| https://github.com/nodejs/node/pull/62924/files#diff-53b9ee1f571ea7753baa2ed2f7b549c044de283c11605a1c3169911cb074acb7 |
|
chacha20_poly1305.js
| https://github.com/nodejs/node/pull/62924/files#diff-afbe8db76ef7ff4e6a9084cc955c169eeda5d023031d5f4d72b74b3dccfc75b2 |
|
diffiehellman.js
| https://github.com/nodejs/node/pull/62924/files#diff-c92e48b9347ad2ce4a71be6ff55e03821c9220851baa08fe1ec8aa23fba2cc65 |
|
ec.js
| https://github.com/nodejs/node/pull/62924/files#diff-15c1a60d165e73c0aa21f0aff84493a257a577a97e9c8d2f33779b003193e338 |
|
hkdf.js
| https://github.com/nodejs/node/pull/62924/files#diff-7f18a628b2c2be00d00df933f722d9516c76ed1da953d3ed937624e99dc1900d |
|
keys.js
| https://github.com/nodejs/node/pull/62924/files#diff-dc0c77ec6254d6ea006052823a4d90dda37543cc4c4bf451a6fd8d079b9fa9f3 |
|
mac.js
| https://github.com/nodejs/node/pull/62924/files#diff-0a00854c29b4afcf90096a503ba20a7bcec04c29c1f010428102d4437529f0c4 |
|
ml_dsa.js
| https://github.com/nodejs/node/pull/62924/files#diff-aafefed13aa329d8aedb709c4336989fcd560e57396546fc731437e437ccdef8 |
|
ml_kem.js
| https://github.com/nodejs/node/pull/62924/files#diff-047915935f506e203c24ada563d2364e29180685c65001fbe4ded65ccd936521 |
|
pbkdf2.js
| https://github.com/nodejs/node/pull/62924/files#diff-dc4ff7692195e94fe4c1c2a7a462bfae70defed23a58c618b47989e0caef5095 |
|
rsa.js
| https://github.com/nodejs/node/pull/62924/files#diff-73032fe8406a59d52947208fc3a5273e0b9f8156ed44d569f296d30139e6c3b5 |
|
util.js
| https://github.com/nodejs/node/pull/62924/files#diff-58fb74b9b189a11905c3b44a366cd7395f8dd204103d1803c0d853cbd14b53b0 |
|
webcrypto.js
| https://github.com/nodejs/node/pull/62924/files#diff-94512ef9a5aef0e277e76a298c97ce87a685b5f54b60d62532e637046e974bf6 |
|
webcrypto_util.js
| https://github.com/nodejs/node/pull/62924/files#diff-17c7930d6048d99e8c6b2e22e6bb8cdf44ea5348635b5b64b883108a3e908dc1 |
|
webidl.js
| https://github.com/nodejs/node/pull/62924/files#diff-800ad0ad975b0ac9a91466383c9a2d69ad2c07b4ec00664190523f44fdbaaa44 |
|
comparisons.js
| https://github.com/nodejs/node/pull/62924/files#diff-bf43bcaa5596c38bf749716194186c2f0be79712e737752d9bb2d63830c2c4d5 |
|
README.md
| https://github.com/nodejs/node/pull/62924/files#diff-30a6621169f98b52f8627de43b250889106143820885c59c34aea4a7e2fc965e |
|
crypto_ec.cc
| https://github.com/nodejs/node/pull/62924/files#diff-5db80d8f7a9d7880f439eb95303372ab76f77ff4f13818d04020108f49c38316 |
|
crypto_keys.cc
| https://github.com/nodejs/node/pull/62924/files#diff-ba9c6e460921506078681fce317dec2c97e0b9b43c4b7b17d16dd1539e469b2b |
|
crypto_keys.h
| https://github.com/nodejs/node/pull/62924/files#diff-f2ade773010f15e87807491067d5e81c36c5902fb7f142f39880bf19a14e3304 |
|
crypto_rsa.cc
| https://github.com/nodejs/node/pull/62924/files#diff-c6de2ecfc54c47adc24707ee08978aaafbcdfa842020f0e48a261d39c884a803 |
|
env_properties.h
| https://github.com/nodejs/node/pull/62924/files#diff-3c4caf9223a0c3a6efbb87207e13f002d4209a6c4db5d9c113ac5d7112ef4474 |
|
node_crypto.cc
| https://github.com/nodejs/node/pull/62924/files#diff-fbb424b0c726f25a6ab1100125b7e97a96142f900c0c328805905f39004e0e8e |
|
test-webcrypto-cryptokey-brand-check.js
| https://github.com/nodejs/node/pull/62924/files#diff-327e1dd720bcaaad82407b66caf70a8530375bf16bd81eaa11d16b6a15463b6c |
|
test-webcrypto-cryptokey-clone-transfer.js
| https://github.com/nodejs/node/pull/62924/files#diff-12d54e1a1d73d1db7b899c6ed80044cac12ac40ca74ba30b2c9fcd31a4045a6e |
|
test-webcrypto-cryptokey-hidden-slots.js
| https://github.com/nodejs/node/pull/62924/files#diff-50b785983f1bd6d2c2190937019db705631c7723ee60694b6846d70efbfdc1c2 |
|
test-webcrypto-cryptokey-no-own-symbols.js
| https://github.com/nodejs/node/pull/62924/files#diff-70eaa385f05f8c441a32533f388dc0bebdb4b94125eb6188afff4c7d2a1971a8 |
|
test-webcrypto-derivebits-hkdf.js
| https://github.com/nodejs/node/pull/62924/files#diff-58e602dd2ba5cceef09f7eca832f2c5cb6454fc42f32b46089b70f481e784105 |
|
test-webcrypto-encrypt-decrypt-chacha20-poly1305.js
| https://github.com/nodejs/node/pull/62924/files#diff-3f49cf1eabdf23ad76d102051359c419af9c7dd6f6bc46fc6b5c05da20a7f680 |
|
test-webcrypto-export-import-cfrg.js
| https://github.com/nodejs/node/pull/62924/files#diff-30f6d387fea6f5e4131038e8fd3cb2bbc656af2723e0e0669b4fb0bef10dba93 |
|
test-webcrypto-export-import-ec.js
| https://github.com/nodejs/node/pull/62924/files#diff-a7256e798f073d01adb67b47383a85543f4296ba7bbd979f2022c257dd855162 |
|
test-webcrypto-export-import-ml-dsa.js
| https://github.com/nodejs/node/pull/62924/files#diff-1cabff555ecd16c3f28b93662bfe102c7759782e5873e01843cec3c533cccca5 |
|
test-webcrypto-export-import-ml-kem.js
| https://github.com/nodejs/node/pull/62924/files#diff-8d0e57387fa1ed01a85024136ab52886d4c38db0eeff9f7730ad3bf9e0104f83 |
|
test-webcrypto-export-import-rsa.js
| https://github.com/nodejs/node/pull/62924/files#diff-1e79ac56983c7919c8dcb5ab559bc684bc16225429e2604f41efd1d5f917ccbc |
|
test-webcrypto-internal-slots.mjs
| https://github.com/nodejs/node/pull/62924/files#diff-ee2d4602207603b00ae26b2f178634658853e3c248915a4d6cb9977c63cfee81 |
| benchmark/crypto/webcrypto-sign.js | https://github.com/nodejs/node/pull/62924/files#diff-c3489bf8138829fabd047ce5114da200400982948d0b1ef6828f8c49786e5d71 |
|
View file
| https://github.com/panva/node/blob/aedb3e46057e71493084d697013a67ac0c7e0b48/benchmark/crypto/webcrypto-sign.js |
|
Open in desktop
| https://desktop.github.com |
| https://github.co/hiddenchars |
| https://github.com/nodejs/node/pull/62924/{{ revealButtonHref }} |
| benchmark/crypto/webcrypto-verify.js | https://github.com/nodejs/node/pull/62924/files#diff-f4f5d2af68898af8faf5b395411f73e9677312317e9f097e785dfaddcdcd5b07 |
|
View file
| https://github.com/panva/node/blob/aedb3e46057e71493084d697013a67ac0c7e0b48/benchmark/crypto/webcrypto-verify.js |
|
Open in desktop
| https://desktop.github.com |
| https://github.co/hiddenchars |
| https://github.com/nodejs/node/pull/62924/{{ revealButtonHref }} |
| lib/eslint.config_partial.mjs | https://github.com/nodejs/node/pull/62924/files#diff-89eb5442de2dcd59f1f3932873799b3f49d48e4ce12e7c003bfa9d5bd45a03a5 |
|
View file
| https://github.com/panva/node/blob/aedb3e46057e71493084d697013a67ac0c7e0b48/lib/eslint.config_partial.mjs |
|
Open in desktop
| https://desktop.github.com |
| https://github.co/hiddenchars |
| https://github.com/nodejs/node/pull/62924/{{ revealButtonHref }} |
|
| https://github.com/nodejs/node/pull/62924/files#diff-89eb5442de2dcd59f1f3932873799b3f49d48e4ce12e7c003bfa9d5bd45a03a5 |
|
| https://github.com/nodejs/node/pull/62924/files#diff-89eb5442de2dcd59f1f3932873799b3f49d48e4ce12e7c003bfa9d5bd45a03a5 |
| Please reload this page | https://github.com/nodejs/node/pull/62924/files |
| Please reload this page | https://github.com/nodejs/node/pull/62924/files |
|
| https://github.com |
| Terms | https://docs.github.com/site-policy/github-terms/github-terms-of-service |
| Privacy | https://docs.github.com/site-policy/privacy-policies/github-privacy-statement |
| Security | https://github.com/security |
| Status | https://www.githubstatus.com/ |
| Community | https://github.community/ |
| Docs | https://docs.github.com/ |
| Contact | https://support.github.com?tags=dotcom-footer |