Ilya Chesnokov
6d626ea70c
Style fixes and new style rules for eslint ( #919 )
2019-06-28 15:33:18 +02:00
Daniel Huigens
5dcaf85f5a
Optimize reading large messages with lots of tiny partial body parts ( #864 )
...
* Fix pako decompression
* Optimize base64-decoding
* Don't stream-parse packets when not stream-reading data
2019-02-21 08:33:55 -08:00
Sanjana Rajan
1bee091f2a
Merge pull request #815 from twiss/userIds
...
Make fromUserIds/toUserIds params plural, and accept arrays of User IDs
2018-12-23 17:50:46 +01:00
Daniel Huigens
113c4a5f1e
Add CAST5 to always-allowed algorithms
...
Golang's OpenPGP implementation uses CAST5 as its fallback.
(The spec mandates TripleDES as fallback.)
Fixes #819 .
2018-12-22 00:00:47 -05:00
Daniel Huigens
e727097bb0
Always look at the same literal data packet in getText() and verify()
2018-12-17 12:27:05 -05:00
Daniel Huigens
3b9676f2e9
Reject messages encrypted with a symmetric algo not in preferred algos
2018-12-17 12:27:03 -05:00
Daniel Huigens
65772d86b3
Make fromUserIds/toUserIds params plural, and accept arrays of User IDs
...
Each User ID object is used for the key object at the corresponding index
in the privateKeys/publicKeys arrays.
2018-12-14 16:54:44 +01:00
Daniel Huigens
c7339f6f78
Check whether signing key was non-expired at signature creation time
2018-12-10 16:34:44 +01:00
Daniel Huigens
787965981a
Check whether message signatures are expired when verifying them
2018-12-10 15:20:24 +01:00
Daniel Huigens
92230d2055
Consider non-expired signatures from expired keys to still be valid
2018-12-10 15:20:11 +01:00
Daniel Huigens
997f3e8e38
Compute signed data based on expected signature type
2018-11-05 17:13:40 +01:00
Daniel Huigens
327d3e5392
Only accept binary or text signatures when verifying messages
2018-11-05 11:47:39 +01:00
Daniel Huigens
abce79b509
Use Web Crypto for hashing
2018-11-01 14:11:22 +01:00
Sanjana Rajan
3c45b6f18a
Merge pull request #793 from twiss/signature-errors
...
Check that one-pass signatures match their corresponding signature
2018-11-01 12:13:02 +01:00
Daniel Huigens
13c29b1fc9
Fix decryption with multiple passwords
2018-11-01 11:46:27 +01:00
Daniel Huigens
9c82bf491e
Reject signatures[*].verified and signatures[*].signature on read errors
...
However, don't throw "unhandled promise rejection" when not using these
properties at all, or when they reject before the user has a chance to
handle them.
2018-10-29 11:47:36 +01:00
Daniel Huigens
3751731330
Don't hang when signature packet corresponding to one-pass sig is missing
2018-10-04 22:13:10 +02:00
Daniel Huigens
e055d86062
Update documentation
2018-08-14 17:50:26 +02:00
Daniel Huigens
052fa444be
Support Node streams
2018-08-14 17:19:54 +02:00
Daniel Huigens
0ddff3ae7d
Rename asStream
to streaming
...
Also, break up `postProcess`.
2018-08-14 17:19:51 +02:00
Daniel Huigens
52c4fa9639
Move streams library to a separate package
2018-08-14 16:35:40 +02:00
Daniel Huigens
ca537e439d
Comments & code style
2018-08-14 16:35:38 +02:00
Daniel Huigens
2b30ab9c8f
Replace data
with message
parameter in encrypt() and sign()
...
When encrypting/signing a stream, this allows you to indicate whether it's a
stream of Strings or Uint8Arrays (using message.fromText or message.fromBinary,
respectively.)
When signing text, this allows you to control whether to create a cleartext
message or a regular armored text message.
When creating a detached signature, it allows you to control whether it's "meant
for" (verifying against) a cleartext message. A cleartext message has trailing
whitespace trimmed before signing. This fixes the case of passing a detached
signature from sign() to encrypt(). Since encrypt() doesn't create a cleartext
message, the signature would be invalid if the text contained lines with
trailing whitespace.
2018-08-10 14:46:29 +02:00
Daniel Huigens
9f0f00e087
Make signature.verified a Promise instead of result.signatures
...
Also, fix verifying detached signatures
2018-08-10 14:46:28 +02:00
Daniel Huigens
ad92ac7c3a
Fix signature type of one-pass signatures when passing a signature
...
If the type of the signature passed to openpgp.encrypt() did not
match the "expected" type (text for literal text packets, etc)
the signature type would be set incorrectly.
2018-08-10 14:46:26 +02:00
Daniel Huigens
eb72d4dd63
Don't use asmcrypto's streaming API when not necessary
...
Optimization for Firefox
2018-08-10 14:46:26 +02:00
Daniel Huigens
ddda6a0b16
Implement cancellation by manually linking together input and output streams
2018-08-10 14:46:24 +02:00
Daniel Huigens
de2971d84a
Use TransformStreams
2018-08-10 14:46:24 +02:00
Daniel Huigens
9c1c28bc59
Add option to read unauthenticated data from stream
2018-08-10 14:46:23 +02:00
Daniel Huigens
56ec5b3a8d
Don't keep extra copies of streams in memory
2018-08-10 14:46:22 +02:00
Daniel Huigens
ade2627bca
Streaming verify one-pass signatures
2018-08-10 14:44:01 +02:00
Daniel Huigens
05479e6e6b
Don't warn about await in loops
2018-08-10 14:44:01 +02:00
Daniel Huigens
0372bf78f1
Make (de)armoring and packet reading asynchronous
2018-08-10 14:44:01 +02:00
Daniel Huigens
403bdc5346
Streaming decryption (Web)
2018-08-10 14:44:01 +02:00
Daniel Huigens
9853d3d830
Streaming encryption (Web)
2018-08-10 14:44:01 +02:00
Daniel Huigens
15e6f0d654
Replace get(Sub)KeyPackets with get(Sub)Keys
2018-07-19 15:03:25 +02:00
Daniel Huigens
91b7165b78
Add key/subKey.getKeyId, getFingerprint, getAlgorithmInfo, getCreationTime, isDecrypted
2018-07-19 15:03:25 +02:00
Daniel Huigens
8cfe817b18
Remove getEncryptionKeyPacket and getSigningKeyPacket
...
Also, rename subKey.subKey to keyPacket and alias key.primaryKey as keyPacket.
2018-07-19 13:31:03 +02:00
Daniel Huigens
3fd0fa8f68
Various key revocation fixes
2018-07-13 17:45:09 +02:00
Daniel Huigens
e411839ae3
Deduplicate signature packet creation
2018-07-11 18:05:01 +02:00
Daniel Huigens
fe3c1b4f31
Add fromUserId / toUserId parameters to openpgp.encrypt and sign
...
To select the user whose algorithm preferences, expiration time etc to use.
2018-05-01 13:39:23 +02:00
Daniel Huigens
0376f49e01
Deduplicate getPreferredSymAlgo / getPreferredAEADAlgo
2018-04-30 15:55:35 +02:00
Daniel Huigens
6f2abdc2cf
Implement MIME message type (Literal Data Packet format 'm')
2018-04-27 14:06:19 +02:00
Daniel Huigens
3b81088aaf
Decouple signature type from data packet type
...
Instead of creating a text signature for text packets and a binary signature for
binary packets, we determine the signature type based on whether a String or
Uint8Array was originally passed. This is useful for the new MIME data packet
type (implemented in the next commit) which you can pass in either format.
This also partly reverts a22c9e4
. Instead of canonicalizing the literal data
packet, we canonicalize the data when signing. This fixes a hypothetical case
where an uncanonicalized text packet has both a text and a binary signature.
This also partly reverts c28f7ad
. GPG does not strip trailing whitespace when
creating text signatures of literal data packets.
2018-04-27 14:06:19 +02:00
Daniel Huigens
e24b46192d
Only AEAD-protect when target keys support it
2018-04-27 14:06:18 +02:00
Daniel Huigens
5f97a8c937
Implement preferred AEAD algorithms
2018-04-27 14:06:16 +02:00
Daniel Huigens
5d43b44e50
Log swallowed errors in debug mode
2018-04-27 14:06:14 +02:00
Sanjana Rajan
614640ee42
add comment
2018-03-22 16:55:40 -07:00
Sanjana Rajan
a22c9e4770
WIP text signatures
2018-03-22 16:10:21 -07:00
Mahrud Sayrafi
96c9cd0d73
Fixes dead links in the documentation
2018-03-13 00:13:04 -07:00
Mahrud Sayrafi
08da24de27
documentation fixes
2018-03-08 10:55:58 -08:00
Mahrud Sayrafi
0b2817ba39
Last little things become async ...
2018-03-08 10:01:55 +01:00
Mahrud Sayrafi
47006069d1
Added test for encryption with revoked subkey
2018-03-08 10:01:54 +01:00
Mahrud Sayrafi
23a4141ce9
Addresses @sanjanarajan's comments
2018-03-08 10:01:54 +01:00
Mahrud Sayrafi
73a240df6c
Simplifies (Key|User|SubKey).isRevoked, API changes in key.js
...
For User s/revocationCertifications/revocationSignatures/g
For Key/SubKey s/revocationSignature/revocationSignatures/g is now an array.
2018-03-08 10:01:54 +01: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
Bart Butler
1cd9018346
some cleanup
2018-03-06 10:04:33 -08:00
Bart Butler
f57888fe55
change all calls of getRandomBytes and getRandomBN to be async
2018-03-05 16:31:56 -08:00
Bart Butler
5564b67cc8
remove readSignedContent in favor of appendSignature
2018-03-01 11:55:09 -08:00
Mahrud Sayrafi
9e1236c04c
Modernizes util.js
2018-02-28 15:49:41 -08:00
KAYLukas
a5b30468ef
Check creation time in expiration checks
2018-02-22 00:41:12 +01:00
KAYLukas
454ca1d879
Address comments
2018-02-18 11:50:27 +01:00
KAYLukas
071fc35f38
Check created time to be valid and discard milliseconds from date objects
2018-02-17 11:28:04 +01:00
KAYLukas
6ca8bc2180
Add timeparameter for verification and remove verify_expired_keys
2018-02-16 17:20:48 +01:00
KAYLukas
7e66ea20db
Add timeparameter to signing and encryption
2018-02-16 17:20:48 +01:00
Sanjana Rajan
b5d19b6f8d
pull out common signature code
2018-02-14 19:00:13 +01:00
Sanjana Rajan
38a11d7aaf
reuse createVerificationObjects for cleartext
2018-02-14 17:55:54 +01:00
Sanjana Rajan
94b12e566b
correctly handle cleartext headers with no hash specified
2018-02-14 17:07:39 +01: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
Bart Butler
c855fd4e4e
Update message.js
...
doc fix
2018-02-13 10:58:55 -08:00
mmso
9f7466ef45
Add compression support for the encrypt function
2018-02-13 15:08:41 +01:00
Sanjana Rajan
62015c2c8d
useWildcard -> wildcard
2018-02-12 19:31:47 +01:00
Sanjana Rajan
989ad5077e
cleanup, docs
2018-02-12 13:40:23 +01:00
Sanjana Rajan
7365ffc9b7
wildcard implementation
2018-02-12 09:47:51 +01:00
Sanjana Rajan
e5e49901a7
change var names
2018-02-12 09:47:51 +01:00
Mahrud Sayrafi
d851398b0c
Merge branch 'master' into http-to-https
2018-02-08 10:56:46 -08:00
Bart Butler
0f4d81bf2c
add test for signing with multiple keys, align signature packet order with high-level API private key order
2018-02-07 18:16:54 -08: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
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
Daniel Kahn Gillmor
4da28fcc29
move from http to https where possible.
...
There are dozens of links in the OpenPGP.js codebase that are http but
could be replaced with https links. I've converted as many of them as
i could find.
2018-02-01 09:58:06 -05:00
Mahrud Sayrafi
a4134b9f55
Addresses various review comments by @bartbutler + some cleanups
2018-01-31 17:52:38 -08:00
Mahrud Sayrafi
d97bc064ea
Cleanups and doc fixes
2018-01-31 12:24:21 -08:00
Mahrud Sayrafi
e6820d7b2a
Passing all tests, on Node, Firefox, and Chrome
2018-01-30 18:34:28 +01:00
Mahrud Sayrafi
21ae66c604
encrypt/decrypt/sign/verify will always return promises
...
Note: publicKeyEncryptedSessionKey uses promises, symEncryptedSessionKey does not
2018-01-30 18:33:55 +01:00
Mahrud Sayrafi
1a714cec73
ECC with async/await is 'Done, without errors.'
2018-01-30 18:33:55 +01:00
Mahrud Sayrafi
11a2d0070b
ESLint is happy!
2018-01-30 18:31:30 +01:00
Sanjana Rajan
50940b2a1e
flag to allow verification with expired keys
2018-01-17 18:37:25 +01:00
Bart Butler
1682787152
deal with empty encrypted data correctly
2017-12-22 13:26:53 -08:00
Sanjana Rajan
0e254a8c8c
simplify
2017-12-02 11:17:39 -08:00
Sanjana Rajan
6189cd4568
returnSessionKey flag in encrypt function
2017-12-02 11:04:29 -08:00
Sanjana Rajan
7e03410bc9
allow sessionKey param in top level encrypt
2017-12-01 21:25:43 -08:00
Bart Butler
d33c46a33c
minor bugfix
2017-07-06 15:27:45 -07:00
Sanjana Rajan
d04c09687d
spacing
2017-03-23 11:16:16 -07:00
Sanjana Rajan
25d16046c2
add one pass in case where no priv keys are passed in for signing
2017-03-22 17:14:30 -07:00
Sanjana Rajan
79160abcc9
allow signature as input in high level encrypt
2017-03-22 17:04:21 -07:00
Sanjana Rajan
4ec07672a7
return signature object inside verification object
2017-03-10 10:38:59 -08:00
Sanjana Rajan
7b58cd9200
add tests
2017-03-07 13:59:17 -08:00