diff options
author | 2023-10-07 19:22:45 -0300 | |
---|---|---|
committer | 2023-10-07 15:22:45 -0700 | |
commit | 35109160ca5d439116bedeb3302ec3745e2895d5 (patch) | |
tree | 7b864016acc5e689c6262a9fddc41b00160de28f /src/bun.js/bindings/webcrypto/CryptoKeyHMAC.cpp | |
parent | bb9933fa7ec5eafcb8ef902c96d85a2b248a85be (diff) | |
download | bun-35109160ca5d439116bedeb3302ec3745e2895d5.tar.gz bun-35109160ca5d439116bedeb3302ec3745e2895d5.tar.zst bun-35109160ca5d439116bedeb3302ec3745e2895d5.zip |
feat(KeyObject) (#5940)
* oops
* createSecretKey but weird error
* use the right prototype, do not add a function called export lol
* HMAC JWT export + base64 fix
* Fix Equals, Fix Get KeySize, add complete export RSA
* fix RSA export
* add EC exports
* X25519 and ED25519 export + fixes
* fix default exports
* better asymmetricKeyType
* fix private exports
* fix symmetricKeySize
* createPublicKey validations + refactor
* jwt + der fixes
* oopsies
* add PEM into createPublicKey
* cleanup
* WIP
* bunch of fixes
* public from private + private OKP
* encrypted keys fixes
* oops
* fix clear tls error, add some support to jwk and other formats on publicEncrypt/publicDecrypt
* more fixes and tests working
* more fixes more tests
* more clear hmac errors
* more tests and fixes
* add generateKeyPair
* more tests passing, some skips
* fix EC key from private
* fix OKP JWK
* nodejs ignores ext and key_ops on KeyObject.exports
* add EC sign verify test
* some fixes
* add crypto.generateKeyPairSync(type, options)
* more fixes and more tests
* fix hmac tests
* jsonwebtoken tests
* oops
* oops2
* generated files
* revert package.json
* vm tests
* todos instead of failues
* toBunString -> toString
* undo simdutf
* improvements
* unlikely
* cleanup
* cleanup 2
* oops
* move _generateKeyPairSync checks to native
Diffstat (limited to 'src/bun.js/bindings/webcrypto/CryptoKeyHMAC.cpp')
-rw-r--r-- | src/bun.js/bindings/webcrypto/CryptoKeyHMAC.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/bun.js/bindings/webcrypto/CryptoKeyHMAC.cpp b/src/bun.js/bindings/webcrypto/CryptoKeyHMAC.cpp index aafb3b2fe..9428998cb 100644 --- a/src/bun.js/bindings/webcrypto/CryptoKeyHMAC.cpp +++ b/src/bun.js/bindings/webcrypto/CryptoKeyHMAC.cpp @@ -25,6 +25,7 @@ #include "config.h" #include "CryptoKeyHMAC.h" +#include "../wtf-bindings.h" #if ENABLE(WEB_CRYPTO) @@ -69,6 +70,13 @@ CryptoKeyHMAC::CryptoKeyHMAC(Vector<uint8_t>&& key, CryptoAlgorithmIdentifier ha CryptoKeyHMAC::~CryptoKeyHMAC() = default; + +RefPtr<CryptoKeyHMAC> CryptoKeyHMAC::generateFromBytes(void* data, size_t byteLength, CryptoAlgorithmIdentifier hash, bool extractable, CryptoKeyUsageBitmap usages) { + + Vector<uint8_t> vec_data((uint8_t*)data, byteLength); + return adoptRef(new CryptoKeyHMAC(vec_data, hash, extractable, usages)); +} + RefPtr<CryptoKeyHMAC> CryptoKeyHMAC::generate(size_t lengthBits, CryptoAlgorithmIdentifier hash, bool extractable, CryptoKeyUsageBitmap usages) { if (!lengthBits) { @@ -118,11 +126,13 @@ RefPtr<CryptoKeyHMAC> CryptoKeyHMAC::importJwk(size_t lengthBits, CryptoAlgorith return CryptoKeyHMAC::importRaw(lengthBits, hash, WTFMove(*octetSequence), extractable, usages); } + JsonWebKey CryptoKeyHMAC::exportJwk() const -{ +{ + JsonWebKey result; result.kty = "oct"_s; - result.k = base64URLEncodeToString(m_key); + result.k = Bun::base64URLEncodeToString(m_key); result.key_ops = usages(); result.ext = extractable(); return result; |