Commit Graph

1455 Commits

Author SHA1 Message Date
Wiktor Kwapisiewicz
0099c373d2
Fix reading signersUserId packet in signatures
This bug caused all signersUserIds strings to be prefixed with `"null"`
string. Changed to use only the last value for this packet type.

Previous implementation probably assumed that there will be more than one
signersUserId packet but I haven't been able to generate such signature
using gpg (only last user id was embedded). Moreover signature
serialization function `write_all_sub_packets` writes only one value of
this packet as a UTF-8 string.
2018-06-27 12:17:19 +02:00
Sanjana Rajan
c7a65ccd16 fix #716 2018-06-13 15:05:10 +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
Sanjana Rajan
c83c81ca56
Merge pull request #708 from MaximilianKrambach/tests
Run tests with randomly generated strings
2018-06-08 09:06:43 -07:00
Maximilian Krambach
4beb31333e change some variable names in tests to camelCase 2018-06-04 12:33:01 +02:00
Sanjana Rajan
75f291839e
Merge pull request #714 from wiktor-k/wkd
Add support for Web Key Directory lookups
2018-05-29 14:37:05 -07:00
Wiktor Kwapisiewicz
043e77a6ea
Add Web Key Directory lookup
This change implements Web Key Directory lookup using user's e-mail
address. The target host is the same as the e-mail's domain and the
local-part is hashed with SHA-1 and encoded using Z-Base32 encoding.

Implemented is basic flow of version 06 of OpenPGP Web Key Directory
draft [0].

It was necessary to update node-fetch package to allow returning array
buffers from HTTP responses.

If openpgpjs is used in the browser all keys retrieved from Web Key
Directory should have `Access-Control-Allow-Origin` header set to `*`
(including 404 Not found responses).

[0]: https://datatracker.ietf.org/doc/draft-koch-openpgp-webkey-service/
2018-05-29 21:21:24 +02:00
Wiktor Kwapisiewicz
da98ccb421
Add ZBase32 encoding function
See: https://tools.ietf.org/html/rfc6189#section-5.1.6
2018-05-29 09:55:47 +02:00
Sanjana Rajan
be26302d99
Merge pull request #703 from nguyendviet/master
new Encrypt and decrypt String data with PGP keys example
2018-05-28 15:17:24 -07:00
Sanjana Rajan
bf428b80d4 Release new version 2018-05-22 17:39:26 -07:00
Sanjana Rajan
80aab5d94f Merge pull request #712 from openpgpjs/signature_formatting
Fix #710
2018-05-22 17:32:22 -07:00
Sanjana Rajan
bcfb9c037a fix case with binary signatures on text data 2018-05-22 14:58:13 -07:00
Sanjana Rajan
5111a2ba43
Merge pull request #705 from mmso/fix/ie11
Fix IE11 support
2018-05-19 12:50:54 -07:00
mmso
11ff845c3e
Don't include transferable on IE11 on postMessage 2018-05-18 09:16:57 +02:00
Maximilian Krambach
1eb3902a96 Run tests with randomly generated strings 2018-05-17 12:40:30 +02:00
Sanjana Rajan
7cd2aded63 Release new version 2018-05-15 00:05:10 -07:00
Sanjana Rajan
33d5b158f8 fix #706 - if ignore_mdc_error is set to false then MDC is required for all symmetrically encrypted data 2018-05-15 00:04:58 -07:00
Viet Nguyen
65be3ed77a new Encrypt and decrypt String data with PGP keys example 2018-05-09 21:48:00 -04:00
Sanjana Rajan
6efcce1069 prioritize signing with subkeys when possible 2018-05-09 12:23:35 -07:00
Sanjana Rajan
4926667cf9
Merge pull request #694 from twiss/eslint-cleanup
Remove some ESLint silencers
2018-05-03 08:05:57 -07:00
Sanjana Rajan
244a71162d
Merge pull request #698 from twiss/fix-aead-instructions
Fix AEAD instructions
2018-05-03 08:05:30 -07:00
Sanjana Rajan
4c9d025193
Merge pull request #693 from twiss/userid
Parse user IDs & allow selecting user when encrypting/signing
2018-05-03 08:05:12 -07:00
Daniel Huigens
3ffcc7bb76 Fix AEAD instructions 2018-05-03 16:05:31 +02:00
Daniel Huigens
b5c6e655de Warn about console usage 2018-05-03 13:07:52 +02:00
Daniel Huigens
4afaae13ca Remove unused variables 2018-05-03 13:07:52 +02:00
Daniel Huigens
6e27e3145c Micro-optimize DSA signing 2018-05-03 13:07:52 +02:00
Daniel Huigens
0ae427060f Add Object.assign polyfill 2018-05-03 13:07:51 +02:00
Daniel Huigens
887e832635 Throw when user ID matches no users 2018-05-03 13:04:32 +02:00
Daniel Huigens
95b9e5188a Remove some ESLint silencers 2018-05-01 17:36:15 +02:00
Daniel Huigens
94b27c9a02 Don't repeatedly loop enums in enums.read 2018-05-01 16:43:29 +02:00
Daniel Huigens
3c224379f6 Remove util.isUserId()
It was not really correct anyway; a user id can just be an email address
without < > brackets.
2018-05-01 13:39:24 +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
6c2fec3450 Parse user IDs
Also, support comments when creating user IDs
2018-05-01 13:39:23 +02:00
Sanjana Rajan
cf3c2790f2 Release new version 2018-04-30 14:58:14 -07:00
Sanjana Rajan
9a5583fd25 clarifying comments 2018-04-30 13:30:48 -07:00
Sanjana Rajan
d562c147f9
Merge pull request #691 from twiss/draft04
Implement RFC4880bis-04
2018-04-30 12:16:20 -07:00
Daniel Huigens
a16d1a6a1d iOS does not support GCM-en/decrypting empty messages 2018-04-30 19:09:48 +02:00
Daniel Huigens
2627755b49 iOS Safari doesn't allow setting Error.message 2018-04-30 16:58:39 +02:00
Daniel Huigens
49c9fb193d Only call webCrypto.generateKey once in tests 2018-04-30 16:58:39 +02:00
Daniel Huigens
8ec01ae07a Reduce duplicate tests 2018-04-30 16:58:38 +02:00
Daniel Huigens
a7fce27424 Safari 8 compatibility 2018-04-30 16:58:37 +02: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
550b758d57 Fall back to asm for CTR and CBC in old Safari 2018-04-30 16:58:35 +02:00
Daniel Huigens
b8191388cd Bump "old Chrome" version from 38 to 41 2018-04-30 16:58:34 +02:00
Daniel Huigens
48cbb97d19 Bump Sauce Labs timeout 2018-04-30 16:58:33 +02:00
Daniel Huigens
7ce3f5521f Set default draft version to 4 2018-04-30 15:55:38 +02:00
Daniel Huigens
04651e359a Rename enums.aead.gcm to experimental_gcm
So that (1) if the spec ever defines GCM differently than we do, we have a
clean upgrade path and (2) it makes it clear that it's experimental.
2018-04-30 15:55:37 +02:00
Daniel Huigens
bbf71d149b Deduplicate OCB encrypt / decrypt 2018-04-30 15:55:37 +02:00
Daniel Huigens
e8adeef278 Implement Issuer Fingerprint subpacket 2018-04-30 15:55:37 +02:00
Daniel Huigens
310d8dd9b9 Fix V5 key fingerprint in ECDH parameters 2018-04-30 15:55:36 +02:00