Commit Graph

58 Commits

Author SHA1 Message Date
larabr
00c5f38689
Cipher-specific key validation (#1116)
Also, check binding signatures for decryption keys.

Also, do not always fallback on Web Crypto ECC errors.
2020-07-13 19:57:33 +02:00
Daniel Huigens
6e13604a64 Replace 'window' with 'global'
In order to use Web Crypto in application workers, among other things.
2020-01-24 17:58:04 +01:00
Daniel Huigens
ad0fdcc4da Fix openpgp.config.use_native = false for RSA sign/verify 2019-11-29 11:39:38 +01:00
Ilya Chesnokov
45c2e67624 Use native Node crypto for RSA encryption (#1006) 2019-11-26 16:06:49 +01:00
Ilya Chesnokov
6e7f399eb3 Use Web Crypto & Node crypto for RSA signing and verifying (#999)
Also, when generating RSA keys in JS, generate them with p < q, as per
the spec.

Also, when generating RSA keys using Web Crypto or Node crypto, swap the
generated p and q around, so that will satisfy p < q in most browsers
(but not old Microsoft Edge, 50% of the time) and so that we can use the
generated u coefficient (p^-1 mod q in OpenPGP, q^-1 mod p in RFC3447).

Then, when signing and verifying, swap p and q again, so that the key
hopefully satisfies Safari's requirement that p > q, and so that we can
keep using u again.
2019-11-18 14:59:01 +01:00
Tom J
d27060e508 Use native Node crypto for RSA key generation (#947) 2019-08-16 13:11:04 +02:00
Sanjana Rajan
0248604a96 more helpful error messages when rsa message and sig sizes exceed that of modulus 2018-06-13 13:06:07 +02:00
Mahrud Sayrafi
944dece506
Adds Brainpool Curves + tests + docs 2018-03-18 10:12:29 -07:00
Mahrud Sayrafi
a5e7562066
Many documentation improvements; more to come 2018-03-08 19:27:57 -08:00
Mahrud Sayrafi
08da24de27
documentation fixes 2018-03-08 10:55:58 -08:00
Bart Butler
f57888fe55 change all calls of getRandomBytes and getRandomBN to be async 2018-03-05 16:31:56 -08:00
Mahrud Sayrafi
9e1236c04c
Modernizes util.js 2018-02-28 15:49:41 -08:00
Mahrud Sayrafi
d529edfdda
Addresses @sanjanarajan's review comments 2018-02-27 13:04:45 -08:00
Mahrud Sayrafi
b518d27ff0
Added Fixed-Base Miller-Rabin 2018-02-27 00:23:51 -08:00
Mahrud Sayrafi
378fb85733
Optimizes getRandomBN, Brings back IE11 KeyOperation helper 2018-02-26 16:56:42 -05:00
Mahrud Sayrafi
2e95335825
millerRabin set to 40 iterations; doc fixes 2018-02-25 09:30:19 -05:00
Mahrud Sayrafi
7a3a75a7df
JavaScript RSA using bn.js, without asmcrypto.js 2018-02-25 00:11:29 -05:00
Mahrud Sayrafi
9943379cb7
Added Native RSA Key Generation 2018-02-24 22:10:36 -05:00
Mahrud Sayrafi
168a6b0bb8
New probabilistic random number generation algorithms; UNTESTED 2018-02-22 18:27:34 -08: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
d40e8fe428
Use asmcrypto.js directly + quickfix 2018-02-22 11:51:21 -08:00
Mahrud Sayrafi
a2868a5c14
Begone jsbn.js! I tell you begonegit status 2018-02-22 00:37:43 -08:00
Mahrud Sayrafi
1812166a53
RSA using asmcrypto with asmcrypto bignum 2018-02-22 00:37:42 -08:00
Mahrud Sayrafi
e1d85ba682
ElGamal and MPI use bn.js; TODO: RSA Key Generation 2018-02-22 00:37:42 -08:00
Mahrud Sayrafi
b126fd5be7
RSA encrypt/decrypt use asmcrypto as well
TODO: RSA key generation, removing jsbn from dsa, elgamal, mpi, etc.
2018-02-22 00:37:41 -08:00
Mahrud Sayrafi
aee8974ef5
RSA signatures now use asmcrypto.js; various fixes and tweaks 2018-02-22 00:37:41 -08:00
Bart Butler
3c2871a0e4 only access window.crypto.webkitSubtle in fallback 2018-02-15 15:34:32 -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
Sanjana Rajan
b756d35b8f use hash param in rsa key gen with webkit subtle 2017-09-20 18:28:37 +02:00
Tankred Hase
453a9cee07 Use web worker for encrypt/decrypt if no native gcm 2016-03-23 21:17:36 +08:00
Tankred Hase
dea42df209 Refactor src/crypto/**/*.js to use import & export 2016-02-05 10:36:09 +07:00
Tankred Hase
4d325ca65c Cleanup RSA and util code 2016-02-03 20:24:54 +07:00
evilaliv3
a730d3f7ad Replace check for detecting that an object is a promise 2016-01-07 18:28:40 +01:00
evilaliv3
9589fa0b52 Apply mixed code review thanks to webstorm inspector 2016-01-07 14:46:55 +01:00
Bart Butler
51dbbe2090 tanx update 2 2015-05-22 12:03:59 -07:00
Bart Butler
2a89baa837 tanx updates 2015-05-22 12:02:23 -07:00
Bart Butler
e8465350fc Support for crypto API keygen in IE11 on Windows 7 and 8 2015-02-28 03:43:39 -08:00
Tankred Hase
cb3cc86a88 Add native RSA keygen (WebCrypto) support for Safari/iOS 2015-02-13 22:14:27 +01:00
Tankred Hase
0ac58356b5 Refactor keygen to use promises (Work in progress) 2014-10-01 13:13:09 +02:00
Tankred Hase
72cb1cfc49 Make WebCrypto optional with config.useWebCrypto 2014-10-01 11:17:48 +02:00
Tankred Hase
e6f66b9039 Cleanup promise error handling 2014-10-01 08:40:26 +02:00
Tankred Hase
0af12b81a3 Fix typo 2014-10-01 07:40:02 +02:00
Tankred Hase
7c2cf89589 Fix decoding of JWK. Webcrypto works. 2014-09-30 21:57:46 +02:00
Tankred Hase
85d2199971 Activate web crypto api (still fails tests)
* Remove api support for safari
* Fix error handling
2014-09-30 19:31:12 +02:00
Tankred Hase
cbe4a17ccb Refactor key generation to use callback
* TODO: reactive native web crypto in rsa.js:142
* TODO: generate publicExponent Uint8Array from argument E in rsa.js:148
* TODO: signing with generated web crypto key fails with "Could not find valid key packet for signing in key"
2014-09-30 18:22:17 +02:00
Thomas Oberndörfer
d6963f2017 map JWK parameters to local BigInteger 2014-09-30 18:20:26 +02:00
Tankred Hase
15edf09972 Add RSA keygen example using WebCrypto Api 2014-09-30 18:20:26 +02:00
Tankred Hase
bbe174828f Upgrade license to LGPL version 3.0 or later. 2014-09-30 18:16:58 +02:00
Thomas Oberndörfer
3f626f4bfb OP-01-024 Random Range Bias in DSA/Elgamal (Low). Fix ranges, add TWO constant to BigInteger. 2014-03-21 17:12:02 +01:00