Daniel Huigens
a620fc0276
Don't use unexported low-level functions in tests
2021-02-09 19:25:20 +01:00
Daniel Huigens
b3e08fdc26
Don't export default objects / namespaces
...
Import individual functions, instead.
2021-02-09 19:25:20 +01:00
Daniel Huigens
0e33e641af
Switch build system to rollup
...
Also, default to minimized builds.
2021-02-09 19:25:20 +01:00
Ilya Chesnokov
e16807505f
Switch util function names to camelCase ( #1091 )
2021-02-09 19:25:20 +01:00
Ilya Chesnokov
d415bc2546
Rename config option names to camelCase ( #1088 )
2021-02-09 19:25:20 +01:00
Ilya Chesnokov
495fe1091c
Apply eslint to test/crypto folder ( #1003 )
2019-11-19 14:29:32 +01:00
Ilya Chesnokov
08b7725b8c
Create lightweight build that can lazily load indutny/elliptic if needed ( #956 )
...
This PR adds four config options to configure whether and how to load
indutny/elliptic: use_indutny_elliptic, external_indutny_elliptic,
indutny_elliptic_path and indutny_elliptic_fetch_options.
Also:
- Use tweetnacl.js instead of indutny/elliptic for curve25519 key generation
- Don't initialize indutny's curve25519, improving performance when using that curve
- Verify NIST signatures using Web Crypto instead of indutny/elliptic when not streaming
- Move KeyPair.sign/verify to ecdsa.js
- Move KeyPair.derive to ecdh.js
- Move keyFromPrivate and keyFromPublic to a new indutnyKey.js file
2019-10-25 16:07:57 +02:00
Ilya Chesnokov
70cf2d60ff
Implement ECDH using Node crypto ( #921 )
2019-07-09 20:45:28 +02:00
chesnokovilya
1bd5689d75
Implement ECDH using Web Crypto for supported (NIST) curves ( #914 )
2019-06-27 19:21:32 +02:00
Daniel Huigens
e637e75891
Clean up ECDH API
2019-05-02 12:08:08 +02:00
Daniel Huigens
352dd5639e
Fix async describe() in test suite that always runs
2019-02-05 13:46:59 +01:00
Daniel Huigens
1dd168e7a2
Fix ECDH message encryption for some session keys
2019-02-05 13:46:59 +01:00
wussler
f018f60b9c
ECDHE tests ( #846 )
...
* Ellyptic curves tests
* Re-run tests
2019-01-27 00:19:36 +00:00
Daniel Huigens
cb3f644708
Validate ECC public keys
2018-12-14 17:21:12 +01:00
Daniel Huigens
abce79b509
Use Web Crypto for hashing
2018-11-01 14:11:22 +01:00
Daniel Huigens
61a0e3fa69
Fix tests on IE11
2018-08-14 16:35:40 +02:00
Daniel Huigens
ade2627bca
Streaming verify one-pass signatures
2018-08-10 14:44:01 +02:00
Daniel Huigens
310d8dd9b9
Fix V5 key fingerprint in ECDH parameters
2018-04-30 15:55:36 +02:00
Mahrud Sayrafi
944dece506
Adds Brainpool Curves + tests + docs
2018-03-18 10:12:29 -07:00
Mahrud Sayrafi
6fefe22c09
Finished fixing key.js; fixes async tests
2018-03-08 10:01:55 +01:00
Mahrud Sayrafi
30bd6102d5
OID's stored as Uint8Array
2018-03-01 11:35:16 -08:00
Mahrud Sayrafi
5e857e131e
Bugfix in Native ECC in Node
2018-03-01 01:28:03 -08:00
Mahrud Sayrafi
9e1236c04c
Modernizes util.js
2018-02-28 15:49:41 -08:00
Mahrud Sayrafi
7eef65926a
Simplifies elliptic/curve.js
2018-02-28 00:58:50 -08:00
Mahrud Sayrafi
3df0997f4d
Cleanups
2018-02-26 20:01:01 -05:00
Mahrud Sayrafi
3b912d2fae
Cleaning mpi.js; TODO: store MPI.data as Uint8Array instead of BN
...
Also improved asynchronousity in packet tests
2018-02-22 14:51:57 -08:00
Mahrud Sayrafi
490b1dc0f0
ECDH, ECDSA, EdDSA are all on BN.js; TODO: ElGamal & type_mpi
2018-02-22 00:37:42 -08:00
BafS
b672f1936a
Use let and const ES6 features.
...
Remove var, for let or const if possible, clean some syntax, enforce one var per declaration and semicolons
2018-02-13 23:33:09 +01:00
BafS
de6ffc2f76
Remove 'user strict'
...
'use strict' is unnecessary inside modules because module code is always strict mode code. Ref: https://www.ecma-international.org/ecma-262/6.0/#sec-strict-mode-code
2018-02-13 23:33:09 +01:00
Mahrud Sayrafi
115d1c0949
A better patch for EdDSA truncation issue.
...
The last test in test/general/x25519.js is commented, as it seems to defy logic.
Yet it can be successfully imported by GPG2. TODO: How?
2018-02-03 14:36:20 -08:00
Sanjana Rajan
41f1e697b5
remove isValid
2018-02-01 13:41:19 +01:00
Mahrud Sayrafi
d97bc064ea
Cleanups and doc fixes
2018-01-31 12:24:21 -08:00
Mahrud Sayrafi
5cb89f4f25
Addresses various review comments by @sanjanarajan
...
* Various FIXME tags are removed
* In curve.js:
- webCrypto/nodeCrypto fallback bug is fixed
- Curve25519 has keyType ecdsa (won't be used for signing, but technically can be)
- webGenKeyPair is simplifed
* In base64.js:
- documentation added and arguments simplified
* In ecdsa.js and eddsa.js:
- hash_algo is now at least as strong as the default curve hash
- simplified the code by moving webSign/nodeSign and webVerify/nodeVerify to live in key.js (ht @ismaelbej)
* In message.js:
- in decryptSessionKey, loops break once a key packet is decrypted
* In key.js:
- getPreferredHashAlgorithm returns the best hash algorithm
- enums are used for curve selection
2018-01-30 18:36:26 +01:00
Mahrud Sayrafi
3129e7c4e3
Adds X25519 tests and updates README.md
2018-01-30 18:35:29 +01:00
Mahrud Sayrafi
1a714cec73
ECC with async/await is 'Done, without errors.'
2018-01-30 18:33:55 +01:00
Mahrud Sayrafi
12eb037ba7
Everything in test/crypto/elliptic.js passes; working on test/general/ecc.js
2018-01-30 18:31:39 +01:00
Ismael Bejarano
585a2bd69d
Functions to encrypt and decrypt ECDH keys
2018-01-30 18:30:14 +01:00
Ismael Bejarano
ba2f49234e
Signature creation and verification
2018-01-30 18:30:14 +01:00
Ismael Bejarano
a8e8271185
Support functions for Elliptic Curve Cryptography
2018-01-30 18:30:13 +01:00