Commit Graph
85 Commits
Author SHA1 Message Date
mauve 7fc1cdd176 Detect window.close is defined 2020-10-05 12:48:22 -04:00
Christophe Diederichs 66494ec3b5 0.7.1 v0.7.1 2020-09-22 15:56:40 +02:00
Christophe Diederichs 35f38a6c10 missing export: crypto_sign_ed25519_sk_to_pk 2020-09-22 15:50:00 +02:00
Christophe Diederichs 125384f26a remove lockfile 2020-09-22 15:34:54 +02:00
Christophe Diederichs d432fe295d crypto_aead: correctly hadle ad passed as null 2020-09-22 15:30:31 +02:00
Christophe Diederichs 97200f90da 0.7.0 v0.7.0 2020-09-22 14:56:20 +02:00
Christian Bundy 656d6d251e Add crypto_auth (#32)
* add crypto_auth_hmac methods
2020-09-22 14:49:40 +02:00
Christian Bundy 61b6e6916a Add crypto_box_easy (#29)
* Fix backward crypto_secretbox_detached bug

* Add crypto_box_easy
2020-09-22 14:47:36 +02:00
Christophe Diederichs ab004d8022 Add ed25519 conversion operations (#46)
* add ed25519 methods and constants
2020-09-22 14:46:45 +02:00
Christophe Diederichs ce5ac41ecd 0.6.3 v0.6.3 2020-09-15 17:39:54 +02:00
Christophe Diederichs a82160d51b crypto_verify return booleans & add crypto_verify_64 (#33)
* crypto_verify return booleans

* can now return crypto_verify result directly

* remove redundant return values

* unpackneg check returns boolean
2020-09-15 17:27:39 +02:00
Mathias Buus a546f3e51d 0.6.2 v0.6.2 2020-08-12 15:40:16 +02:00
Emil BayandMathias Buus a338ae9f9d Missing helpers (#24)
* Detach buffers by sending to an empty message channel

* Move helpers out

* fix import

* export helpers

* Try browser testing

* messagechannel check

* xvfb-run --auto-servernum npm run test-browser fails weirdly on ci, removing

Co-authored-by: Mathias Buus <mathiasbuus@gmail.com>
2020-08-12 15:39:14 +02:00
Christophe Diederichs e4693065fd update dependencies 2020-07-13 14:53:38 +02:00
Christophe Diederichs 44e5985630 change to universal hashes 2020-07-13 14:53:38 +02:00
Emil Bay f11ff5a727 0.6.1 v0.6.1 2020-06-24 16:30:16 +02:00
Emil Bay 9c30d3ead8 Nicer message formatting 2020-06-24 16:14:52 +02:00
Emil Bay ddcdae69a1 Upgrade secretbox to sodium-native like api (not exposed there) 2020-06-24 16:12:12 +02:00
Emil Bay 80dd633012 Upgrade onetimeauth to sodium-native api 2020-06-24 16:11:56 +02:00
Emil Bay d8d59d0443 Add note on sodium-universal 2020-06-24 15:06:54 +02:00
Emil Bay ef00ddc878 Fix URLs 2020-06-24 15:06:48 +02:00
Emil Bay cc52e58504 Update package metadata 2020-06-24 15:02:49 +02:00
Emil Bay 7b518f7b2c Fix offset ArrayBuffer views 2020-06-24 15:01:10 +02:00
Emil Bay 74a1067746 Fix filling larger width TypedArrays 2020-06-24 14:55:46 +02:00
Emil Bay 919896d2bb Revert accidental sign API change 2020-06-24 14:49:51 +02:00
Emil Bay f3a80cb6f5 Upgrade deps 2020-06-24 14:49:38 +02:00
Emil Bay 40f9b887f4 Modernise example 2020-06-24 14:49:26 +02:00
Emil Bay 2ca6264f50 Add travis 2020-06-24 14:49:11 +02:00
Emil Bay 9d65d19e86 Standardize readme file 2020-06-24 14:49:05 +02:00
Emil Bay 30c3342156 Make linter happy 2020-06-24 14:08:55 +02:00
Emil Bay 930e77ad32 Move internal primitives 2020-06-24 14:02:00 +02:00
Emil Bay e9ac929b5a Move memory helpers to their own module 2020-06-24 14:01:48 +02:00
Emil Bay e77c70ef71 Bust crypto in browserify 2020-06-24 13:37:16 +02:00
Emil Bay 4bb40aa43d Clean up random bytes 2020-06-24 13:37:07 +02:00
Mathias Buus fc90cbedba 0.6.0 v0.6.0 2020-06-18 17:16:43 +02:00
Mathias Buus 63fb70028e bump sodium-test 2020-06-18 17:15:53 +02:00
Mathias Buus f033af88bd copy -> set 2020-06-18 17:12:00 +02:00
Christophe Diederichs b44f83f0a8 Split library into modules (#20)
* crypto_stream: signature change needed to modularise

* move ed25519 arithmetic to separate module

* module: poly1305

* module: crypto_scalarmult

* module: crypto_hash

* module: crypto_sign

* module: crypto_secretbox

* move verify functions to crypto_verify module

* leftover crypto_stream functions

* module: crypto_onetimeauth

* module: crypto_box

* tidy up

* require ed25519.js

* update: crypto_hash

* add chacha20; align API with PR#21

* update sha512 to wasm module

* fix bugs in crypto_sign

* be standard

* add: crypto_box_seed_keypair; alias crypto_kx methods to crypto_box

* scalarmult: import curve methods; be standard

* correction: crypto_kx is not actually an alias of crypto_box

* export _9 constant field element

* add: crypto_box_seed_keypair

* removed duplicate module.exports declaraion

* declare constants about exports

* rename memzero -> sodium-memzero

* update sodium_memzero function to arr.fill(0)

* tidy: remove legacy functions

* added: crypto_aead_chacha20poly1305_ietf methods

* listen to linter

* add assertions

* chacha: readUint32Le generalised for uint8array; aead: standard fix

* add null check on ad param

* added: sodium_memcmp

* export sodium_memcmp

* export crypto_verify module

* sodium_memcmp returns boolean

* added: sodium_is_zero

* catch syntax error

* throw if crypto_aead cannot validate, fix typo in crypto_verify

* move chacha20 alg to external module

* use Uint8Arrays instead of buffers

* change checks to assertions

* bump to chacha 1.0.3 - remove Buffer dependency

* reduce code branching, align return values with sodium-native

* add sha-wasm deps to package.json

* standard fixes

* bump chacha20 to 1.0.4: remove Buffer dep

* move crypto_hash_sha256 to module to uncouple wasm dependencies

* add endian check: all other modules require members of this set

* correct filename: crypto_hash_sha256

* export constant: crypto_hash_sha512_BYTES
2020-06-18 17:09:03 +02:00
Mathias Buus 51f8fbc2d3 0.5.6 v0.5.6 2020-03-04 14:52:37 +01:00
Mathias Buus f790621e60 add sodium_malloc 2020-03-04 14:50:09 +01:00
Fedor Indutny 4e42b942a5 crypto_box: fix keypair, implement seal/seal_open
Secret Key is a random nonce, and public key is a point on elliptic
curve.

`crypto_box_seal`/`crypto_box_seal_open` are implemented using existing
primitives and newly exported `core_hsalsa20` in `xsalsa20`
2019-11-14 09:27:36 +01:00
Daniel Regeci 49587c3d7f crypto_box_keypair - rename arguments to pk,sk 2018-03-19 18:07:17 +00:00
Daniel Regeci 92aee452df crypto_box_keypair 2018-03-19 18:07:17 +00:00
Mathias Buus e1ca83f1bd 0.5.5 v0.5.5 2018-03-19 19:03:43 +01:00
Peter van Hardenberg c81ef709d1 react-native doesn't want crypto set to an empty module (#14)
React-Native is sort of like a browser, sort of a native environment. On react-native we don't have the browser's crypto implementation, so we need to require react-native-crypto. We can rewrite the module requirement to do that using the extraNodeModules feature in rn-cli.config.js, but the metro packager assumes that if there's a "browser" field in package.json that it's relevant to react-native libraries unless there's also a "react-native" field. Hurray.

Anyway, this silly little patch tells metro not to replace crypto with an empty module but actually to use whatever you currently have crypto set to (which is not solved here, so you'll still have to do that.)
2018-03-19 18:58:24 +01:00
Jim Pick 4e1c69ba13 Change crypto_kdf_KEYBYTES to be 32 and use subarray instead of slice
Thanks to Emil Bayes for the advice.
2018-03-03 17:24:12 +00:00
Jim Pick 5159d68fa9 In kdf, truncate key before passing to blake to match sodium-native behaviour
Currently, sodium-native and sodium-javascript are returning different
hashes. The code in hyperdrive passes a 64 byte secret key to the kdf,
but only 32 bytes are used by the native version, but all 64 bytes are
used in the javascript version. As a result, hyperdrive secret keys
can't be imported/exported across the two sodium implementations.

https://gist.github.com/jimpick/3e869522eddaad77ac1bc9e64f36e1a7
2018-03-03 17:24:12 +00:00
Mathias Buus 5ccdcdee17 0.5.4 v0.5.4 2017-11-19 13:16:51 +01:00
Mathias Buus 48081c6896 ignore crypto in the browser 2017-11-19 13:16:35 +01:00
Mathias Buus b1741bfdae 0.5.3 v0.5.3 2017-11-17 12:09:34 +01:00