Commit Graph

62 Commits

Author SHA1 Message Date
Daniel Huigens
f3b16386dc Use dynamic import in lightweight build
Instead of dynamically loading a <script> tag.

This also removes the non-module lightweight build.
2021-02-09 19:25:20 +01:00
Daniel Huigens
cde282d4f1 Replace 'global' with 'globalThis' 2021-02-09 19:25:20 +01:00
Ilya Chesnokov
d415bc2546 Rename config option names to camelCase () 2021-02-09 19:25:20 +01:00
larabr
8823603396 Remove worker () 2021-02-09 19:25:20 +01:00
larabr
4c93abb9f9 Use V5 keys by default () 2021-02-09 19:25:20 +01:00
larabr
a7640bce52 Use AEAD protection by default () 2021-02-09 19:25:20 +01:00
larabr
2eab8a1ebc
Add config option to allow insecure decryption with RSA signing keys () 2020-08-28 16:09:56 +02:00
Daniel Huigens
15202d9d40 Don't use polyfilled Set in compat build
All methods of sets we need are available in all browsers we support.
2020-02-25 15:06:15 +01:00
Daniel Huigens
8c3bcd1f21 Reject signatures using insecure hash algorithms
Also, switch from returning false to throwing errors in most verify*()
functions, as well as in `await signatures[*].verified`, in order to be
able to show more informative error messages.
2020-02-25 15:06:15 +01:00
Ilya Chesnokov
08b7725b8c Create lightweight build that can lazily load indutny/elliptic if needed ()
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
Daniel Huigens
a184ef6ec4 Remove support for the previous draft00 AEAD 2019-08-12 17:46:37 +02:00
Daniel Huigens
80c535eeb7 Separate config option to use V5 keys from AEAD config option 2019-08-12 17:46:37 +02:00
Wiktor Kwapisiewicz
82799390de
Fix signatures with critical notations
Previously the signature parsing function ignored critical bit on
notations.

This change checks for notations that are marked "critical" but are not
on the known notations list (controlled by config array
`openpgp.config.known_notations`) and triggers parse error if such
a notation have been encountered.

See: .
2019-05-16 09:57:58 +02:00
Daniel Huigens
9a7fe9cd45 Bump S2K iteration count parameter 2018-11-05 11:47:46 +01:00
Daniel Huigens
e8a2c45390 Only use Web Crypto for hashing beyond a treshold number of bytes
Sending data to the Web Crypto API involves some latency.
2018-11-01 14:47:22 +01:00
Daniel Huigens
e66d44e42d Rename config.unsafe_stream to allow_unauthenticated_stream 2018-08-10 14:46:29 +02:00
Tom James Holub
35260cb5db configurable max uid length | close 2018-06-30 04:35:08 +00:00
Sanjana Rajan
9a5583fd25 clarifying comments 2018-04-30 13:30:48 -07:00
Daniel Huigens
cc1f7a4765 Lower chunk_size_byte to 12 (256KiB)
- In anticipation of streaming decryption
- Firefox 34 does not support chunk_size_byte > 24

256KiB is almost as fast as no chunks (although both of those can be up to
~1.5x slower than optimally using threads for very large message sizes).
The optimal chunk size would be something like:

    max(data.length / navigator.hardwareConcurrency, 128KiB)

But we don't do so currently because

- We don't know the hardwareConcurrency of the decrypting machine
- Smaller chunk sizes are better for streaming decryption
2018-04-30 16:58:36 +02:00
Daniel Huigens
7ce3f5521f Set default draft version to 4 2018-04-30 15:55:38 +02:00
Daniel Huigens
4e204d7331 Update AEAD instructions in README 2018-04-30 15:55:32 +02:00
Daniel Huigens
28dbbadcff Add config.aead_protect_version option 2018-04-27 14:06:17 +02:00
Daniel Huigens
5f97a8c937 Implement preferred AEAD algorithms 2018-04-27 14:06:16 +02:00
Daniel Huigens
17ad654d60 Implement version 5 Symmetric-Key Encrypted Session Key packet 2018-04-27 14:06:13 +02:00
Daniel Huigens
7b3f51c0d4 Implement AEAD Encrypted Data Packet 2018-04-25 20:12:10 +02: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
Mahrud Sayrafi
ec22dabac3 Slightly simplifies key.js; adds key.verifyKeyPackets which should be run before getEncryption/SigningKeyPacket 2018-03-08 10:01:54 +01:00
KAYLukas
6ca8bc2180 Add timeparameter for verification and remove verify_expired_keys 2018-02-16 17:20:48 +01:00
Bart Butler
7286116f1c add deflate_level to config 2018-02-15 09:44:31 -08:00
Bart Butler
c8adaff826 change JS zlib to pako, use Node zlib if available 2018-02-14 14:21:53 -08: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
mmso
9f7466ef45
Add compression support for the encrypt function 2018-02-13 15:08:41 +01:00
Mahrud Sayrafi
b2e39ccaf9
Documentation and cleanups 2018-02-07 03:25:28 -08:00
Bart Butler
602bbb707d rename decryptSessionKey to decryptSessionKeys, return only unique session keys 2018-02-06 21:25:49 -08:00
Bart Butler
210ec26ed3 fix sporadic two password decryption failure 2018-02-06 16:43:51 -08:00
Sanjana Rajan
b9d175d998 tests 2018-01-17 19:36:51 +01:00
Sanjana Rajan
50940b2a1e flag to allow verification with expired keys 2018-01-17 18:37:25 +01:00
Tom James Holub
c27725782c do not fail when missing armor checksum | 2017-07-21 10:13:33 -07:00
Bart Butler
ddf6eb5783 change URL to https 2017-04-25 14:09:31 +02:00
Sanjana Rajan
c3958b0270 tolerant default to true 2017-04-05 16:36:29 -07:00
Sanjana Rajan
b51b8ad341 add tolerant mode which suppresses errors in reading non-data packets 2017-04-05 07:54:08 -07:00
Tankred Hase
843fba0d40 Use underscore instead of camelcase in config
zeroCopy —> zero_copy
useNative —> use_native
Remove unnecessary tests from build
2016-03-24 21:02:29 +08:00
Tankred Hase
72c8bf5ea7 Deactivate GCM by default 2016-03-24 20:47:42 +08:00
Tankred Hase
ded8926b27 Support AES-GCM with AEAD Protected Data Packets
Closes 
2016-03-22 17:44:22 +08:00
Tankred Hase
a1ab02adc8 Revert "Point to TLS/HSTS secured .com domain"
This reverts commit 177d701f5b.
2016-02-18 11:38:12 +07:00
Tankred Hase
177d701f5b Point to TLS/HSTS secured .com domain 2016-02-15 14:06:31 +07:00
Tankred Hase
ab68d4b997 Support transferable objects in web worker for zero copy support 2016-02-09 17:01:48 +07:00
Tankred Hase
8777289b77 Cleanup config 2016-02-06 19:11:58 +07:00
Tankred Hase
8728db2b08 Finish refactoring src/**/*.js to use import & export 2016-02-05 15:23:11 +07:00