Daniel Huigens
d314a20e0f
Don't return keys with an authorized revocation key
2018-11-05 11:47:45 +01:00
Daniel Huigens
8fa3aadea2
Add and require primary key binding signatures on signing keys
...
Also, fix keyFlags of signing subkeys.
Also, store Issuer Key ID and Embedded Signature in unhashed rather
than hashed subpackets.
2018-11-05 11:47:45 +01:00
Daniel Huigens
7253df1632
Don't hash when comparing key fingerprints
2018-11-01 14:47:21 +01:00
Daniel Huigens
ac6b57781b
Make isValid*KeyPacket inner functions
2018-09-22 23:03:10 +02:00
Daniel Huigens
bbcdacef8d
Small documentation fixes
2018-09-22 23:03:10 +02:00
Daniel Huigens
b3af56b8a3
Ignore third-party revocation signatures
...
This check was removed in ec22dab.
2018-09-22 23:03:10 +02:00
Daniel Huigens
a1c47ecdea
Indicate an error when parsing a key with an authorized revocation key
...
Since we will ignore revocation signatures from authorized revocation keys,
it is dangerous to use these keys.
2018-09-22 23:03:10 +02:00
Daniel Huigens
5cf61daa19
Check validity of signatures before using them
2018-09-22 23:03:10 +02:00
Sanjana Rajan
d43437473f
bugfix - when a requested key capability is not present, return null expiration
2018-09-03 21:59:58 -07:00
Daniel Huigens
e055d86062
Update documentation
2018-08-14 17:50:26 +02:00
Daniel Huigens
00a2c0c0c2
Support unicode surrogate code points
2018-08-14 17:24:40 +02:00
Daniel Huigens
ca537e439d
Comments & code style
2018-08-14 16:35:38 +02:00
Daniel Huigens
4e749965f2
Remove support for V3 keys and signatures
2018-08-10 14:46:26 +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
Sanjana Rajan
c79bda1d37
bugfix - compare create time from key packet
2018-08-03 14:21:15 +02:00
Sanjana Rajan
438d47f634
handle case where primary user doesn't exist when getting exp time
2018-07-24 17:17:12 +02:00
Wiktor Kwapisiewicz
19e3c344fd
Fix verification of User Attributes
...
This change corrects verification of certifications over User Attributes
(such as photos).
Before this change the code did not differentiate between User IDs and
User Attributes as both of them were stored in `data.userid` [0] and
incorrectly used the User ID constant (0xB4) for both cases.
This change fixes the bug by storing User IDs in `userId` property and
User Attributes in `userAttribute` property. The check for property
existence has been modified to avoid comparisons with `undefined` as the
`User` class sets `null` for not assigned packets instead of
`undefined`.
Only data structures for signing and verification were modified and not
the properties used in the `User` class.
[0]: 11b2d2de3c/src/key.js (L872)
2018-07-24 13:03:46 +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
a49276a158
Allow checking expiry of subkeys by capability, keyId or userId
2018-07-18 14:40:28 +02:00
Daniel Huigens
06746b6a77
Use latest created subkey when possible
2018-07-18 14:29:59 +02:00
Daniel Huigens
8f3e448fa6
Remove obsolete JSDoc comment
2018-07-13 18:15:53 +02:00
Sanjana Rajan
53f473bfa7
Merge pull request #734 from twiss/key-revocation
...
Key revocation
2018-07-13 17:46:48 +02:00
Daniel Huigens
3fd0fa8f68
Various key revocation fixes
2018-07-13 17:45:09 +02:00
Sanjana Rajan
8865103e17
Merge pull request #733 from wiktor-k/fix-primary-uid
...
Fix Key#getPrimaryUser on keys without valid UIDs
2018-07-12 15:03:01 +02:00
Wiktor Kwapisiewicz
c3d4bf3529
Fix Key#getPrimaryUser on keys without valid UIDs
...
During tests of weird keys [0] it was found out that OpenPGP.js does not
handle keys without valid UIDs well.
There are two issues that this change corrects, first one is adding
filtering of user IDs in `getPrimaryUser` such as only users with self
certifications are considered. Without that change using
`getPrimaryUser` on a key without valid UIDs would throw an exception
(`Cannot read property 'verified' of undefined` [1]).
Second issue is correcting condition whether to throw if no UID was
found. Previous condition checked for `userId` variable, but this is
initialized by default and as such is almost always set. This causes
`key.getPrimaryUser()` (without condition) to throw `Could not find user
that matches that user ID`. The condition has been modified to match the
filter condition (checking if any property of `userId` has been
initialized).
[0]: https://gitlab.com/sequoia-pgp/weird-keys/tree/master/openpgpjs
[1]: 576ed08a54/openpgpjs/results/no-bound-uid.pgp.txt
2018-07-12 14:04:07 +02:00
Daniel Huigens
e411839ae3
Deduplicate signature packet creation
2018-07-11 18:05:01 +02:00
Daniel Huigens
1ed7943bf9
Create openpgp.revokeKey
2018-07-11 17:57:31 +02:00
Daniel Huigens
368d80245a
Subkey revocation
2018-07-11 17:46:49 +02:00
Daniel Huigens
a3484c3116
Key revocation
2018-07-11 17:45:59 +02:00
Maximilian Krambach
11029e4162
Key merging with non-UserID user attribute
...
fix #678
2018-07-09 16:53:55 +02: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
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
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
Daniel Huigens
0376f49e01
Deduplicate getPreferredSymAlgo / getPreferredAEADAlgo
2018-04-30 15:55:35 +02:00
Daniel Huigens
e24b46192d
Only AEAD-protect when target keys support it
2018-04-27 14:06:18 +02:00
Daniel Huigens
28dbbadcff
Add config.aead_protect_version option
2018-04-27 14:06:17 +02:00
Daniel Huigens
997ec1c8db
Add AEAD feature flags
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
c2f898279b
Implement version 5 Secret-Key Packet Format
2018-04-27 14:06:14 +02:00
Daniel Huigens
ceec57672e
Use most recent primary user
2018-04-23 14:17:09 +02:00
Daniel Huigens
39c7374d70
Only consider most recent user self certification
2018-04-18 14:40:07 +02:00
Daniel Huigens
122d526f49
Only consider most recent subkey binding signature
...
This partially reverts 2bda127.
2018-04-18 14:40:06 +02:00
Sanjana Rajan
2bd540026f
add multiple passphrase options to key encrypt and decrypt
2018-04-16 12:52:17 -07:00
Sanjana Rajan
e4bd27ce2f
tests
2018-04-16 10:51:07 -07:00