Commit Graph

128 Commits

Author SHA1 Message Date
Bart Butler
58031cfaca add openpgp.key.read() function for unarmored serialized keys 2017-11-06 13:42:07 -08:00
Thomas Oberndörfer
e3eb298ab7 Set keyExpirationTime for subkey binding signature 2017-08-30 16:09:53 +02:00
Tom James Holub
2bda12731b subKey.bindingSignature -> subKey.bindingSignatures[] - process all | #527 2017-07-21 21:38:33 -07:00
Bart Butler
ebc37f3a7d Merge pull request #417 from zartdinov/master
Added ability to sign and verify public keys
2017-03-05 12:24:37 -08:00
Aydar Zartdinov
be776c61b1 Validate signatures by all suitable keys 2017-03-04 19:27:27 +00:00
Aydar Zartdinov
d5e88c7c79 Prevent self signing by fingerprint instead of keyId 2017-03-04 18:47:33 +00:00
Bart Butler
b0c1a854fd move SHA1 to the bottom of the preferred hash algorithm list 2017-02-27 10:30:39 -08:00
Sanjana Rajan
e90161c2d1 add missing parentheses 2017-02-15 13:06:18 -08:00
Aydar Zartdinov
d9cb8e681d Array.prototype.find replaced for Node.js 0.12 and IE 11 2017-02-15 21:31:05 +03:00
Aydar Zartdinov
3fa4c0c760 Base functionality moved to User.prototype 2017-02-15 21:08:17 +03:00
Aydar Zartdinov
715f98bb38 Reverted top level api changes 2017-02-15 21:04:50 +03:00
Aydar Zartdinov
5140a946e5 Added ability to sign and verify public keys 2017-02-15 21:04:50 +03:00
Sanjana Rajan
a902c421eb add upper level refactorKey function 2017-01-31 14:14:27 -08:00
Sanjana Rajan
9de579a29d remove extra space, typo 2017-01-30 19:41:43 -08:00
Sanjana Rajan
9d59351007 reformatKey function 2017-01-30 19:38:49 -08:00
David Janes
c223b88829 implement keyExpirationTime 2017-01-24 16:54:52 -05:00
Sanjana Rajan
344294659e invalidate expired primary keys 2016-10-27 11:50:30 -07:00
Thomas Oberndörfer
9c76df73ff Merge pull request #446 from openpgpjs/issue/443
Implement feature #443
2016-05-03 10:01:48 +02:00
evilaliv3
4e3937f1e2 Replace isDecrypted=false with keys[i].clearPrivateMPIs() 2016-04-28 17:40:14 +02:00
evilaliv3
0d93127186 Simplify code-flow of Key.encrypt 2016-04-28 16:01:33 +02:00
evilaliv3
a5fdc36062 Cleanup API for key.decrypt and align unit tests 2016-04-27 16:06:52 +02:00
evilaliv3
61470ad068 Apply edits as suggested in review of pull #446 2016-04-25 18:35:50 +02:00
Tankred Hase
fd218ef52d Add comments to preferred algorithms 2016-04-25 13:08:00 +02:00
evilaliv3
afc2c95238 Implement feature #443 2016-04-25 00:54:16 +02:00
Tankred Hase
8b46a117ab Prefer aes128 over aes192 (no WebCrypto support) 2016-03-24 10:53:30 +08:00
Tankred Hase
979f212305 Cleanup Promise code 2016-03-24 09:29:41 +08:00
Tankred Hase
1e3d6468d6 Wrap code into promises to globally catch errors 2016-03-23 21:19:02 +08:00
Tankred Hase
a44e1e5024 Write tests for new api: openpgp.generateKey 2016-02-08 19:32:42 +07:00
Tankred Hase
8728db2b08 Finish refactoring src/**/*.js to use import & export 2016-02-05 15:23:11 +07:00
Tankred Hase
f06e5aea55 Refactor src/*.js to use import 2016-02-05 09:09:04 +07:00
Tankred Hase
00ea3918c5 Cleanup and linting on all *.js 2016-02-03 20:24:54 +07:00
Bart Butler
b4916e29a3 binary strings to typed arrays in most places 2016-02-03 20:24:54 +07:00
Thomas Oberndörfer
6f8a3abdfa Support multiple user IDs for key generation 2016-01-07 15:35:47 +01:00
Thomas Oberndörfer
a33b8c035d Check validity of key packet before signature verification 2015-03-03 18:15:17 +01:00
Tankred Hase
7f2573c77d Refactor complete public api to use promises 2014-10-01 19:12:39 +02:00
Tankred Hase
0ac58356b5 Refactor keygen to use promises (Work in progress) 2014-10-01 13:13:09 +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
Tankred Hase
bbe174828f Upgrade license to LGPL version 3.0 or later. 2014-09-30 18:16:58 +02:00
Thomas Oberndörfer
069b97d16f Fix sorting of primary users 2014-09-03 14:38:31 +02:00
Thomas Oberndörfer
060da64aab Key generation: do not clear private MPIs for keys without passphrase. 2014-07-30 16:36:01 +02:00
Tankred Hase
62debad52d Allow removal of passphrase protection by calling encrypt with an empty passphrase 2014-07-01 15:02:09 +02:00
Thomas Oberndörfer
7a7c181ee6 Allow private keys for verify methods in Cleartext and Message class. Refactor getKeyPacket methods in Key class. 2014-05-14 11:32:09 +02:00
Thomas Oberndörfer
bb0ac83cb7 Generate key by default without unlocking secret part. Use options parameter for generate method. 2014-05-05 12:11:36 +02:00
Thomas Oberndörfer
4a55905a8f Merge subkey binding signatures in key update method 2014-05-02 17:30:11 +02:00
Thomas Oberndörfer
8ea87050bd Minimize signature verifications to evaluate primary user 2014-04-26 10:50:55 +02:00
Thomas Oberndörfer
9413cd6e7f Drop key packets not in a meaningful order according to RFC4880 "11. Packet Composition" 2014-04-02 18:28:08 +02:00
Thomas Oberndörfer
5eca11ca5b Set signature feature subpacket depending on config.integrity_protect flag 2014-03-29 15:39:26 +01:00
Thomas Oberndörfer
1c818f2410 OP-01-006 Generated keys have no stored algorithm preference (Medium). Set preferences for symmetric, hash and compression algorithms. Fix preferred_compression_algorithms subpacket reading. 2014-03-28 21:39:54 +01:00
Thomas Oberndörfer
22e4540ed9 OP-01-007 Algorithm Preferences ignored upon Encryption (Low) 2014-03-18 17:45:15 +01:00
Thomas Oberndörfer
d6e4e3c028 Add key update method. Fix getPrimaryUser: evaluation of most significant self signature. 2014-02-23 20:46:52 +01:00
Thomas Oberndörfer
f00f4a9582 Merge branch 'key_enh' 2014-02-06 12:46:24 +01:00
Thomas Oberndörfer
b1e8c9ec52 Add unit tests for getExpirationTime Key method 2014-02-06 12:28:36 +01:00
Thomas Oberndörfer
b3a5597ab9 Merge pull request #169 from openpgpjs/subkey_revocation
Verify subkey revocation signatures according to: RFC4880 Errata ID: 3298
2014-02-06 11:41:30 +01:00
Thomas Oberndörfer
a595d683a9 Add getExpirationTime method to Key and SubKey 2014-02-05 18:09:54 +01:00
Thomas Oberndörfer
a9c9f78dd4 Verify subkey revocation signatures according to: http://www.rfc-editor.org/errata_search.php?rfc=4880&eid=3298 2014-02-04 17:44:22 +01:00
Thomas Oberndörfer
57849437d9 Fix isValidEncryptionKeyPacket function: access key flags by index 2014-02-04 15:51:47 +01:00
Robert Nelson
f436c85482 Add a bunch of links to documentation 2014-01-05 23:10:19 -08:00
Robert Nelson
0c6b345ba8 Refactor classes 2014-01-05 10:13:25 -08:00
Robert Nelson
dba6f379e8 Fix all the lint noise, mostly semicolons, duplicate var definitions and ==0 2014-01-02 12:24:10 -08:00
Robert Nelson
17ad1f5fed More documentation fixes 2013-12-26 22:49:37 -08:00
Robert Nelson
40a5af2aae Fixup more documentation links 2013-12-22 23:44:41 -08:00
Robert Nelson
e891d81e17 Merge upstream/devel changes 2013-12-22 13:01:24 -08:00
Robert Nelson
8923813580 Fix jsdoc generation and make keyring multiple instance.
Add jsdoc @module definitions.

Fix references to old class names.

Make keyring a multiple instance module.

Eliminate unit test dependency on running npm test.
2013-12-22 12:39:11 -08:00
Thomas Oberndörfer
b27b01905b Refactoring Key class to use structured data. Transform key from-to packetlist.
Add User and SubKey class. Verification methods for key components.
2013-12-20 18:19:11 +01:00
Thomas Oberndörfer
1ca90a980c Support multiple keys per ASCII armored block. Unify error handling: replace print_error function
with exceptions. The idea is to use exceptions internally, but catch them in the high level API
functions and return errors as implemented in openpgp.key.readArmored.
2013-12-17 16:09:52 +01:00
Robert Nelson
bfba0eca0c Changed unitttests and keyring to use bundled openpgp and updated keyring to use openpgp.key instead of packetlists.
Added getUserIds() to key.

Reenabled keyring ci tests.
2013-12-08 15:41:31 -08:00
Thomas Oberndörfer
f6176ed484 Move key generation to Key class 2013-12-04 16:45:14 +01:00
Thomas Oberndörfer
be96de5188 Move methods of Key and Message class to prototype. Clean up openpgp.js file. 2013-12-02 14:54:05 +01:00
Thomas Oberndörfer
89eb5dff2a Rename attribute for data of armored message from .openpgp to .data 2013-12-02 11:27:14 +01:00
Thomas Oberndörfer
66c428da7e Fix key generation: use primary key for subkey binding signature. On signing all signature subpacket data
is written to the hashed subpacket data section. This allows to set e.g. key flags on certification signatures.
2013-11-26 10:35:41 +01:00
Thomas Oberndörfer
93376b6e13 Add decryptKeyPacket to key class. Used to decrypt specific key
packets and replacing the unlock mechanism. Decrypt method of packet_secret_key
returns boolean to indicate successful decryption. Add config to util class
and cleanup comments. Update tests.
2013-11-19 13:50:14 +01:00
Thomas Oberndörfer
c051eacf36 Introduce unlock method for keys: passphrase is set as attribute of key and used
to decrypt required secret key packets on demand. Directly access config module in armor.js.
Key method getPrivateKeyPacket returns key packets by ID (optionally decrypted).
Message method decrypt returns new message with packetlist of decrypted message.
Add CRLF conversion to literal data packet. Packetlist: make filterByTag variadic,
add findPacket method. Keep state isDecrypted in secret key packet, don't decrypt
if already decrypted. Add mapToHex method to keyid. Simplify emailRegEx.
2013-11-16 22:08:42 +01:00
Thomas Oberndörfer
b544343c63 Further clean up in message and key class. Make tests run. 2013-10-22 20:15:05 +02:00
Thomas Oberndörfer
b1c9eb71d2 Refactoring message and key class. Implement decryptMessage. 2013-10-21 20:51:46 +02:00
seancolyer
7cfa0ab705 Cleanup, creating armor enums 2013-10-18 21:18:38 -04:00
Thomas Oberndörfer
646e370df7 First draft of encrypt message function 2013-10-18 20:21:58 +02:00
seancolyer
7abaa43497 Initial gruntfile support. Forcing a standardized style. 2013-10-08 22:33:36 -04:00
Michal Kolodziej
844ebcf254 Minor fixes, work on the msg.* subsystem. 2013-05-10 22:48:11 +02:00