Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SubtleCrypto #184

Open
2 tasks done
richarddavison opened this issue Feb 20, 2024 · 13 comments · May be fixed by #698
Open
2 tasks done

SubtleCrypto #184

richarddavison opened this issue Feb 20, 2024 · 13 comments · May be fixed by #698

Comments

@richarddavison
Copy link
Contributor

richarddavison commented Feb 20, 2024

https://w3c.github.io/webcrypto/#dfn-SubtleCrypto
https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto?retiredLocale=sv-SE

Related issues

  1. enhancement
  2. enhancement
@tmokmss
Copy link
Contributor

tmokmss commented Mar 21, 2024

Missing crypto.createVerify is also a blocker to use aws-jwt-verify.

edit) I found aws-jwt-verify has web browser support (doc), so we should be able to use the package after LLRT will implement SubtleCrypto.

@panva
Copy link

panva commented Apr 19, 2024

Missing crypto.createVerify is also a blocker to use aws-jwt-verify.

edit) I found aws-jwt-verify has web browser support (doc), so we should be able to use the package after LLRT will implement SubtleCrypto.

https://www.npmjs.com/package/jose will be out of the box compatible as soon as SubtleCrypto is implemented as well.

@calavera calavera self-assigned this May 7, 2024
@ShivamJoker
Copy link

Hi @richarddavison do we have any ETAs on the crypto implementation?
I'm unable to migrate my codebase to LLRT because I'm blocked due to SubtleCrypto and RSA.

@richarddavison
Copy link
Contributor Author

Hi @richarddavison do we have any ETAs on the crypto implementation? I'm unable to migrate my codebase to LLRT because I'm blocked due to SubtleCrypto and RSA.

Hi @ShivamJoker! Thanks for your patience. We are working on it so should be weeks rather than months. It's not a super complex API, but you'd have to hang on for a bit longer 🙂

@calavera calavera removed their assignment May 17, 2024
@stephencroberts
Copy link
Contributor

@richarddavison I was looking into this as well as we'd like to provide a Web Crypto API for our customers. If there's anything I can help with, let me know! I can allocate some time to contribute.

It may also be helpful to use the WebCryptoAPI web-platform-tests once we merge #447 which adds the WPT test harness.

@richarddavison
Copy link
Contributor Author

@stephencroberts that would be fantastic. We appreciate all the help we could get 👌 Here is a reference implementation (not using the same JS engine, but contains all the algorithms we need so we can take a lot a inspiration from there)
https://github.com/lagonapp/lagon/blob/main/crates/runtime_crypto/src/lib.rs

@stephencroberts
Copy link
Contributor

@richarddavison Is there a work-in-progress somewhere or would I start with what's in main?

@richarddavison
Copy link
Contributor Author

@richarddavison Is there a work-in-progress somewhere or would I start with what's in main?

Please start of main and create a draft PR as soon as you have something even if it’s far from complete so we can “tag along” 🙂

@stephencroberts
Copy link
Contributor

FYI @richarddavison, this is on the back burner for now for us, so someone else is free to pick this up. If/when it becomes a priority again for us, I can revisit it.

@dreamorosi
Copy link
Member

Also looking to implement an auth use case - the methods that would help would be importKey, verify, sign, generateKey, and exportKey - all from SubtleCrypto.

I've looked at contributing but unfortunately I'm too out of my depth with Rust atm.

@perpil
Copy link

perpil commented Sep 27, 2024

I'm attempting to use jose to mint/verify JWT tokens and I'm seeing this error: SyntaxError: Could not find export 'KeyObject' in module 'crypto'
AFAICT I'm using the latest llrt 0.2.2-beta, is this expected?

@panva
Copy link

panva commented Sep 27, 2024

I'm attempting to use jose to mint/verify JWT tokens and I'm seeing this error: SyntaxError: Could not find export 'KeyObject' in module 'crypto' AFAICT I'm using the latest llrt 0.2.2-beta, is this expected?

Yeah, there's no crypto implementation in llrt, that's what this issue is about.

@richarddavison
Copy link
Contributor Author

@panva @perpil @stephencroberts thanks for your patience, we understand this its frustrating to don't have a crypto API. Crypto support will be added. There are a few differences between Node.js crypto libraries and WinterCG subtle crypto. Ideally we would support both, but Subtile will have priority.

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 a pull request may close this issue.

8 participants