Comments (7)
It should return an ArrayBuffer
. If you perform toString()
on that you'll get something like ArrayBuffer []
. Brief explanation:
An ArrayBuffer
is an untyped array that just represents a chunk of memory with a defined length. In order to get a view of that memory, you have to cast it to a typed array. Often, this is a Uint8Array
. The U makes it unsigned, so it's alway positive and the 8 makes each element represent one byte.
I imagine what you want is a SHA256 hash as a string. This is most commonly represented in hex. I wrote hex-lite
to make this easy, so here's an example:
import crypto from 'isomorphic-webcrypto';
import hex from 'hex-lite';
crypto.subtle.digest(
{ name: 'SHA-256' },
new Uint8Array([1,2,3]).buffer
)
.then(hash => {
console.log('sha256 hash', hex.fromBuffer(hash));
});
from isomorphic-webcrypto.
I added additional details about hashing to the README. I also included an example of how to generate a hash in the React Native examples.
from isomorphic-webcrypto.
You'll want an Uint8Array
, not an Int8Array
. What happens when you pass a Uint8Array
instead of a raw buffer?
import crypto from 'isomorphic-webcrypto'
crypto.subtle.digest(
{ name: 'SHA-256' },
new Uint8Array([1,2,3]) // remove the buffer
)
.then(hash => {
// do something with the hash buffer
})
from isomorphic-webcrypto.
I ask, because I made accommodations to ensure this works.
I was testing using create-react-native-app
though, so I'm wondering if something strange is happening when checking instanceof
in a different environment.
from isomorphic-webcrypto.
Tbh I'm not really sure what the expected outcome should be in this case. In any case, hash is an empty object. Is that correct?
from isomorphic-webcrypto.
(This works fine both on my test app and in your new example app. Thanks.) Now, I'm sitting here expanding on your app just to test all the methods our app currently uses. Would you consider a PR when I'm done on that? (Probably won't be all methods but it might help a bit).
from isomorphic-webcrypto.
I'll definitely accept a PR! I'm also curious to see which methods you're using. Just a heads up, I haven't rigorously tested the encryption methods, but digest, signing, verification, and key generation (with a few exceptions) should work.
from isomorphic-webcrypto.
Related Issues (20)
- webcrypto-liner not react-native compatible HOT 1
- Unsupported algorithm error HOT 1
- Is `node-webcrypto-ossl` a dependency still? HOT 5
- `WebCrypto` is a namespace import in index.mjs; `WebCrypto.Crypto` is the constructor to be instantiated HOT 4
- RSA generatekey, unsupported algorithm HOT 20
- TypeError: global.document.addEventListener is not a function. React Native version 0.63.2 HOT 10
- Upgrade to the latest MSR crypto library HOT 5
- Warning with react-native dependencies HOT 6
- Large react-native library being pulled in from indirect dependencies HOT 4
- React Native TypeError: Cannot convert null value to object
- Non-functional RSA-OEAP Support
- Huge dependency tree
- importKey does not support the PBKDF2 algorithm
- Update react-native-securerandom to 0.2.0
- Migrate to Expo-Modules HOT 2
- Migrate to Expo-Modules for Expo SDK 43 and newer HOT 8
- An export assignment cannot be used in a module with other exported elements. HOT 1
- React native bare app crashes because of expo-random import
- Adding standalone AES-KW support for React Native
- doesn't actually detect native modules for ios or android anymore HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from isomorphic-webcrypto.