Commit Graph

812 Commits

Author SHA1 Message Date
Sanjana Rajan
9893d602e2 account for non-cleartext sign/verify message parameters 2017-10-09 17:27:02 -07:00
Sanjana Rajan
b756d35b8f use hash param in rsa key gen with webkit subtle 2017-09-20 18:28:37 +02:00
Thomas Oberndörfer
e3eb298ab7 Set keyExpirationTime for subkey binding signature 2017-08-30 16:09:53 +02:00
Bart Butler
ad029f1929 Update armor.js
Only console.log if debug mode on
2017-08-19 10:52:36 -07:00
Bart Butler
1e8bd4315b Update armor.js
Small tweak
2017-08-19 10:49:36 -07:00
Patrick Brunschwig
93d823abb4 Fix for issue 573: don't throw with unknown Armor Headers, but just
with invalid ones
2017-08-19 18:32:02 +02:00
Tom James Holub
ce9dee9370 util.readNumber: stop overflowing until full range of uint32 | #497 2017-07-22 09:26:30 -07:00
Tom James Holub
2bda12731b subKey.bindingSignature -> subKey.bindingSignatures[] - process all | #527 2017-07-21 21:38:33 -07:00
Tom James Holub
3f40a36081 do not remove equal sign at the end of armored body when missing checksum 2017-07-21 17:39:19 -07:00
Tom James Holub
ac055d69d2 fixed outdated annotations in armor.js 2017-07-21 15:39:06 -07:00
Tom James Holub
841b03d6cd improved armor behavior - trailing newline 2017-07-21 15:35:27 -07:00
Tom James Holub
c27725782c do not fail when missing armor checksum | #563 2017-07-21 10:13:33 -07:00
Bart Butler
d737f65ccc Merge pull request #559 from openpgpjs/sign_byte_arrays
Sign Uint8 arrays
2017-07-12 19:45:53 -07:00
Sanjana Rajan
e53cbe8417 remove extra spaces 2017-07-08 13:26:20 +02:00
Sanjana Rajan
95c5e3af01 use message obj when signing uint8 array 2017-07-08 13:25:24 +02:00
Bart Butler
d33c46a33c minor bugfix 2017-07-06 15:27:45 -07:00
Sanjana Rajan
d061af1fc3 style fixes 2017-07-06 16:29:25 +02:00
Sanjana Rajan
a9bb3f1839 armor based on text vs. bytes 2017-07-04 16:47:23 -07:00
Sanjana Rajan
28e5f5d3f4 allow cleartext msg data to be string or byte array 2017-07-04 14:15:39 -07:00
Sanjana Rajan
a7702a74d3 support split checksum where body and checksum are on the same line 2017-06-27 16:41:53 -07:00
Bart Butler
ddf6eb5783 change URL to https 2017-04-25 14:09:31 +02:00
Abhishek Hingnikar
472294ec84 Fix documentation
The storeHandler seems to need loadPublic, loadPrivate, storePublic, storePrivate methods but the current documentation only mentions load and store.
2017-04-08 16:12:47 +05:30
Kévin Bernard-Allies
342bc8fe01 Simplify code of CRC24 checksum in armor encoding 2017-04-06 13:12:45 +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
nauadratti
3673e21a77 Allow punycode encoded TLDs in email
Closes #500
2017-03-30 19:05:22 +00:00
Bart Butler
5fb23ac833 use web worker for reformatKey 2017-03-29 16:27:16 -07:00
Bart Butler
a1ff93f1fc not all platforms implement TypedArray.slice 2017-03-28 11:44:04 -07:00
Bart Butler
62c24ed227 Merge pull request #534 from openpgpjs/signature_input
Accept signature object as an input to encrypt function
2017-03-28 10:43:00 -07:00
Bart Butler
a4190061d9 optimize Uint8Array2str function for large payloads 2017-03-28 10:35:20 -07:00
Sanjana Rajan
16c6d2f162 signatureInput -> signature 2017-03-23 13:01:12 -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
af211f63c0 update README to demonstrate detached signature use, some documentation fixes 2017-03-17 16:54:34 -07:00
Sanjana Rajan
e4621fc688 initialize publicKeys to empty array, test case where signed message is decrypted without public keys to verify 2017-03-15 17:44:43 -07:00
Sanjana Rajan
4ec07672a7 return signature object inside verification object 2017-03-10 10:38:59 -08:00
Sanjana Rajan
da9e3c6264 small fixes 2017-03-07 19:10:33 -08:00
Sanjana Rajan
465d4643a8 add clone to packetlist support for signature objects 2017-03-07 16:51:08 -08:00
Sanjana Rajan
7d02154dc9 small fixes 2017-03-07 13:59:18 -08:00
Sanjana Rajan
43355e079f add detached sig option to upper level functions 2017-03-07 13:59:18 -08:00
Sanjana Rajan
c3908cbec0 add detached sign/verify options to cleartext 2017-03-07 13:59:18 -08:00
Sanjana Rajan
4fd4c13ddd refactor cleartext message to use signature object instead of packetlist 2017-03-07 13:59:17 -08:00
Sanjana Rajan
7b58cd9200 add tests 2017-03-07 13:59:17 -08:00
Sanjana Rajan
57d07091e8 add support for detached signatures 2017-03-07 13:59:17 -08: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
Bart Butler
6be9ddde59 Merge pull request #517 from openpgpjs/userID
Key reformatting and resigning
2017-02-13 16:11:17 -08:00
Sanjana Rajan
11e1040a30 remove extra input param 2017-01-31 14:18:13 -08: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
Alax Villmann
e526cf0a3b Generate valid version 3 signatures 2017-01-26 12:49:49 -08:00
David Janes
c223b88829 implement keyExpirationTime 2017-01-24 16:54:52 -05:00
Bart Butler
bc69357ab5 Merge pull request #498 from larshp/master
S2K - Only generate what is needed
2017-01-22 23:36:36 -08:00
Alax Villmann
0989015ed2 V3 header generation was concat()-ing non-Uint8 arrays 2017-01-09 10:30:31 -08:00
Sanjana Rajan
d65d629264 trim name 2016-12-15 10:39:29 -08:00
Sanjana Rajan
d058523e9e clearer syntax 2016-12-15 10:01:50 -08:00
Sanjana Rajan
109f8a5d20 don't allow leading spaces in user id 2016-12-14 12:38:01 -08:00
Lars Hvam
c69a92d694 only generate what is needed 2016-11-20 09:54:00 -05:00
Sanjana Rajan
344294659e invalidate expired primary keys 2016-10-27 11:50:30 -07:00
Bart Butler
659c6f23d2 Merge pull request #493 from openpgpjs/armored_decrypted_key_fix
Reset secret key's encrypted field to null after decryption
2016-10-26 16:58:07 -07:00
Bart Butler
6abf7ffcc0 Fix rare race condition with webworker tasks, fix minified web worker filename default 2016-10-26 16:56:21 -07:00
Sanjana Rajan
8620220cfb reset encrypted field to null when decrypting secret key 2016-10-26 16:55:49 -07:00
emersion
e9940eb100
Properly set one-pass signture packet flag 2016-08-17 13:03:56 +02:00
Tankred Hase
e3cbaba33a Be sure to only pop unsupported packet if already pushed 2016-06-08 11:30:53 +02:00
Tankred Hase
490d8e4e90 Bugfix: drop unsupported packets in packetlist.read()
add unit test for RSA key with ECC subkey
2016-06-07 18:21:31 +02:00
Tankred Hase
87b4bfefd8 Fix error handling 2016-05-24 17:22:15 +02:00
Tankred Hase
4fd9fd3c7f Cleanup and document worker.js 2016-05-24 13:12:39 +02: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
1007637f39 Mark isDecrypted flag when the key is encrypted 2016-04-25 18:35:57 +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
e3b146b9d9 Fix Keyid.fromId() 2016-04-11 12:11:35 +02:00
Tankred Hase
4070e27959 Cleanup of AES-CFB code in integrity protected packet 2016-03-25 16:10:27 +08: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
969e39dcf2 Rename useAEAD --> nativeAEAD 2016-03-24 13:49:26 +08:00
Tankred Hase
f4fc274f14 Fix: use worker for CFB w/ webcrypto support 2016-03-24 13:24:18 +08:00
Tankred Hase
c8569e0cd5 Add version attribute to the AEAD packet 2016-03-24 10:53:35 +08: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
ddedb5cb42 Cleanup public api 2016-03-23 21:36:48 +08:00
Tankred Hase
1e3d6468d6 Wrap code into promises to globally catch errors 2016-03-23 21:19:02 +08:00
Tankred Hase
453a9cee07 Use web worker for encrypt/decrypt if no native gcm 2016-03-23 21:17:36 +08:00
Tankred Hase
760bdb8f00 Use only standard window.crypto.subtle in gcm.js
There is currently no support for AES-GCM in IE11 and Safari/iOSqq
2016-03-23 17:27:09 +08:00
Tankred Hase
9b2823aa67 Fix unit tests under node 2016-03-23 16:43:40 +08:00
Tankred Hase
963648c6ea Fix unit tests for browsers 2016-03-23 15:39:51 +08:00
Tankred Hase
e5e76d2eb7 Cleanup gcm.js 2016-03-23 14:32:48 +08:00
Tankred Hase
a225027a6b Wrap message.sign into a promise in openpgp.encrypt 2016-03-23 13:43:12 +08:00
Tankred Hase
7fabe02e03 Fix GCM under node.js 2016-03-23 13:43:06 +08:00
Tankred Hase
8f8218e9de Cleanup and test AEAD protected packet 2016-03-22 17:45:19 +08:00
Tankred Hase
8aa15b66a9 Cleanup and unit test gcm.js 2016-03-22 17:45:19 +08:00
Tankred Hase
365a9d2107 Fix link to IEFT draft packet tag in enums.js 2016-03-22 17:45:18 +08:00
Tankred Hase
2e4d8547a0 Fix typo in src/crypto/index.js 2016-03-22 17:45:18 +08:00
Tankred Hase
149f5d5191 Use promise api in sym_encrypted_* packets 2016-03-22 17:45:18 +08:00
Tankred Hase
ded8926b27 Support AES-GCM with AEAD Protected Data Packets
Closes openpgpjs/openpgpjs#421
2016-03-22 17:44:22 +08:00
Tankred Hase
b5618fd63d Remove redundant util.emailRegEx 2016-02-19 11:17:35 +07: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
506e36c9cc Remove function bind polyfill from worker.js
This is no longer required in Phantom.js 2.x
2016-02-18 11:15:59 +07:00
Tankred Hase
177d701f5b Point to TLS/HSTS secured .com domain 2016-02-15 14:06:31 +07:00
Harry Marr
68d1b5a35c Handle carriage-return only newlines
Newlines are normalised to \r\n, but that previously assumed that only
\r\n and \n newline characters could be used. Even though \r newlines
are rarely used in the wild, it's be helpful to support them. Currently,
they're just removed entirely.
2016-02-14 12:01:19 +00:00
Tankred Hase
e4b2b8208e Add jsdoc annotations to openpgp.js 2016-02-13 16:54:43 +07:00
Tankred Hase
24c213d8d9 Add better examples for binary data use. Fix message docs 2016-02-11 17:36:24 +07:00
Tankred Hase
6c954e19c0 Update README.md with v2.x api examples
Minor cleanup in public api, fix typos in docs
2016-02-11 13:41:53 +07:00
Tankred Hase
d399cb8c47 Fix public api doc whitespaces 2016-02-10 23:19:13 +07:00
Tankred Hase
000c3b3686 Revert "Decode utf8 text only for correct format in Literal.getText()"
This reverts commit 83fcbaa633.
2016-02-10 15:33:45 +07:00
Tankred Hase
d5a2e0fb81 Delete plaintext sessionKey from packet after calling message.encryptSessionKey 2016-02-10 12:58:12 +07:00
Tankred Hase
25131e0df9 Added unit tests for util.getTransferables 2016-02-10 12:52:13 +07:00
Tankred Hase
6547b4ef68 Test encrypt/decryptSessionKey and finalize api, review docs 2016-02-10 12:52:13 +07:00
Tankred Hase
6ff470a36a Cleanup worker.js 2016-02-09 20:35:23 +07:00
Tankred Hase
7d97bcec58 Implement openpgp.decryptKey 2016-02-09 19:04:31 +07:00
Tankred Hase
4f6e036a07 Cleanup packet list clonong --> src/packet/clone.js 2016-02-09 19:01:30 +07:00
Tankred Hase
450a7321d1 Fix typo in util 2016-02-09 17:38:16 +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
89df70cbe0 Cleanup src/openpgp.js 2016-02-09 15:37:13 +07:00
Tankred Hase
206f1f9c0f Add 'armor' parameter to sign api 2016-02-09 12:57:23 +07:00
Tankred Hase
c0cc0ee991 Use 'armor' param in encrypt api instead of 'packets' to return full message object 2016-02-09 11:32:35 +07:00
Tankred Hase
994b8d2354 Use generic AsyncProxy.delegate for all public apis 2016-02-09 09:15:52 +07:00
Tankred Hase
f5375ef700 Drastically simplify async_proxy with generic delegate function 2016-02-09 08:46:18 +07:00
Tankred Hase
ee07b77320 Fail gracefully when no web worker support on initWorker 2016-02-09 07:52:08 +07:00
Tankred Hase
b1f6266cc8 Write tests for new api: openpgp.encrypt/decrypt 2016-02-08 23:28:54 +07:00
Tankred Hase
a44e1e5024 Write tests for new api: openpgp.generateKey 2016-02-08 19:32:42 +07:00
Tankred Hase
c7a6a88098 Add type validation util functions 2016-02-08 13:36:21 +07:00
Tankred Hase
1405ec8d1c Return filename for utf8 message 2016-02-08 10:18:37 +07:00
Tankred Hase
f72b4522ad Rename openpgp api: generateKeyPair --> generateKey 2016-02-07 18:01:10 +07:00
Tankred Hase
735ec3df74 Rename openpgp apis: signCleartext --> sign, verifyCleartext --> verify 2016-02-07 17:36:48 +07:00
Tankred Hase
f3ae671a57 Fix @fileoverview comment in hkp module 2016-02-07 08:15:33 +07:00
Tankred Hase
4aaa1d3184 Update copyright notice due to complete rewrite of src/openpgp.js 2016-02-07 08:08:47 +07:00
Tankred Hase
2ad425294c Second draft of public api 2016-02-06 22:58:43 +07:00
Tankred Hase
0f8bfe2dca Rename keys to publicKeys in message.encrypt() 2016-02-06 22:58:43 +07:00
Tankred Hase
31df9c07da Allow either privateKey, session key or password for message.decrypt() 2016-02-06 22:58:43 +07:00
Tankred Hase
83fcbaa633 Decode utf8 text only for correct format in Literal.getText() 2016-02-06 22:58:43 +07:00
Tankred Hase
2754bfef54 Cleanup public api 2016-02-06 22:58:38 +07:00
Tankred Hase
8777289b77 Cleanup config 2016-02-06 19:11:58 +07:00
Tankred Hase
8d82a18c19 Fix bug in message.decryptSessionKey where it would return this (msg obj)
Cleanup message code
2016-02-06 15:03:04 +07:00
Tankred Hase
55110c3409 Remove sessionKeyAlgorithm parameter from message.decrypt()
See: 2010456a19 (commitcomment-12397926)
2016-02-06 14:33:10 +07:00
Tankred Hase
c4bc9b2fe0 Use global this in src/worker/worker.js and add to linting 2016-02-06 14:28:05 +07:00
Tankred Hase
d40c3e81d9 Cleanup code of src/packet/literal.js 2016-02-06 14:22:19 +07:00
Tankred Hase
9da63d56b3 Cleanup style inconsistencies in cfb.js and random.js 2016-02-06 13:36:19 +07:00
Tankred Hase
1997e445f9 Use ES6 destructuring and default parameters in public api 2016-02-05 17:23:17 +07:00
Tankred Hase
f87d8d0433 Fix parsing packets from tag in web worker 2016-02-05 15:39:11 +07:00
Tankred Hase
8728db2b08 Finish refactoring src/**/*.js to use import & export 2016-02-05 15:23:11 +07:00
Tankred Hase
70ac662073 Refactor src/packet/*.js to use import & export 2016-02-05 14:44:22 +07:00
Tankred Hase
9ebe31a4ec Refactor src/worker/*.js to use import and export 2016-02-05 13:20:05 +07:00
Tankred Hase
444128829a Refactor src/keyring/*.js to use import & export 2016-02-05 13:16:42 +07:00
Tankred Hase
acabca9585 Fix config path in hkp.js 2016-02-05 12:45:45 +07:00
Tankred Hase
1157cd2ac8 Move src/hkp/hkp.js -> src/hkp.js
Delete src/hkp/index.js
2016-02-05 12:45:40 +07:00
Tankred Hase
8559cd2bff Refactor src/encoding/*.js and src/hkp/*.js to use import 2016-02-05 12:40:30 +07:00
Tankred Hase
509d6c67ee Refactor src/type/*.js to use import 2016-02-05 10:37:15 +07:00
Tankred Hase
dea42df209 Refactor src/crypto/**/*.js to use import & export 2016-02-05 10:36:09 +07:00
Tankred Hase
3aed324d51 Refactor src/crypto/hash/*.js to use import & export 2016-02-05 09:30:24 +07:00
Tankred Hase
19a97bf117 Refactor src/crypto/cipher/*.js to use import & export 2016-02-05 09:09:04 +07:00
Tankred Hase
60b23169ac Refactor src/config/*.js to use import 2016-02-05 09:09:04 +07:00
Tankred Hase
f06e5aea55 Refactor src/*.js to use import 2016-02-05 09:09:04 +07:00
Tankred Hase
185d575ba3 Refactor src/index.js to re-export ES6 module 2016-02-05 09:09:04 +07:00
Tankred Hase
d725abd5b6 Remove debuggind comments from util 2016-02-04 22:06:48 +07:00
Tankred Hase
bcfc8ef7f7 Use npm published asmcrypto-lite module 2016-02-04 21:47:40 +07:00
Tankred Hase
3bf421206b Further cleanup of sym_encrypted_integrity_protected.js 2016-02-04 16:41:40 +07:00
Tankred Hase
261db8035d Remove redundant message.symEncrypt/symDecrypt 2016-02-04 16:41:39 +07:00
Tankred Hase
c840fabc7d Further cleanup of hash module 2016-02-04 16:41:39 +07:00
Tankred Hase
d67efe22eb Only log errors when config.debug is true 2016-02-04 16:41:38 +07:00
Tankred Hase
316a37a1cd Cleanup hash index.js 2016-02-04 16:41:38 +07:00
Tankred Hase
642f754169 Add more files to linting, make strict mode optional for each file 2016-02-04 16:41:37 +07:00
Tankred Hase
b8f353abe8 Include rusha via npm 2016-02-04 10:05:19 +07:00
Tankred Hase
cfe058596f Include asmCrypto via npm 2016-02-04 09:42:49 +07:00
Tankred Hase
90a7457b71 Refactor most src files to strict mode, delint 2016-02-04 00:37:00 +07:00
Tankred Hase
346aa8f11a Cleanup node.js api detection 2016-02-03 20:24:54 +07:00
Tankred Hase
2f74acc94f Cleanup src/crypto/index.js 2016-02-03 20:24:54 +07:00
Tankred Hase
68d298c948 Fix node.js detection 2016-02-03 20:24:54 +07:00
Tankred Hase
00ea3918c5 Cleanup and linting on all *.js 2016-02-03 20:24:54 +07:00
Tankred Hase
4d325ca65c Cleanup RSA and util code 2016-02-03 20:24:54 +07:00
Tankred Hase
55bd9757e7 Refactor config.useWebCrypto to config.useNative 2016-02-03 20:24:54 +07:00
Bart Butler
469a6be31a Rebase for upload to main openpgpjs repo 2016-02-03 20:24:54 +07:00
Bart Butler
f56b6887d9 native crypto and hash for nodeJS 2016-02-03 20:24:54 +07:00
Bart Butler
4c82568fad hash performance fix 2016-02-03 20:24:54 +07:00
Bart Butler
88a7534b8a Add asmCrypto, native node crypto calls for faster AES 2016-02-03 20:24:54 +07:00
Bart Butler
11038dd946 Add Rusha for fast SHA hashes 2016-02-03 20:24:54 +07:00
Bart Butler
5711028449 does not pass tests yet 2016-02-03 20:24:54 +07:00
Bart Butler
1c6e777a3d bugfixes 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
Bart Butler
b310877c7d fixes 2016-02-03 20:24:54 +07:00
Bart Butler
11a8a99aef add filename to return object when decrypting binary file 2016-02-03 20:24:54 +07:00
Bart Butler
60fb6ba18d direct session key manipulation and encryption/decryption 2016-02-03 20:24:54 +07:00
Bart Butler
91d35ff99c initial modifications 2016-02-03 20:24:54 +07:00
Bart Butler
2e4e9387a0 Fixes for symmetrically encrypted session keys 2016-02-03 20:24:54 +07:00
Tankred Hase
f240feac4b Always polyfill ES6 Promises
Go back to v1.0.0 for Promise polyfill

Add node v5.x to travis build
2016-01-30 16:02:59 +07:00
Tankred Hase
dec7881f93 Don't inject fetch polyfill in hkp module anymore 2016-01-29 20:03:11 +07:00
Tankred Hase
bc5eb03ccd Add var declaration to des.js and use strict mode 2016-01-24 19:55:20 +07:00
evilaliv3
1f995bea22 Fix scope of variables used by des_createKeys in src/crypto/cipher/des.js 2016-01-18 11:58:43 +01:00
evilaliv3
a730d3f7ad Replace check for detecting that an object is a promise 2016-01-07 18:28:40 +01:00
Thomas Oberndörfer
a968f60f0b Keyring: support plain email addresses (without name) as user IDs. 2016-01-07 15:35:47 +01:00
Nick Doiron
ef566b6a3c Specify a filename in encrypt fromBinary [Closes #284] 2016-01-07 15:35:47 +01:00
Thomas Oberndörfer
6f8a3abdfa Support multiple user IDs for key generation 2016-01-07 15:35:47 +01:00
Matthew Shaylor
37ce176d42 If you attempt to store an empty keylist then delete the storage key 2016-01-07 15:35:47 +01:00
Artem Chudinov
068d38d832 Use RegExp.prototype.test instead of String.prototype.match where it is OK
There is no sense in using String.prototype.match if the retrieved matched results
are not used.

By the way, if a bit of performance (especially RAM usage) is preferred over
unification, then, obviously, conditions like
if (/SIGNED MESSAGE/.test(header[1])) {
can be changed to
if (header[1].indexOf('SIGNED MESSAGE') !== -1) {
2016-01-07 15:35:47 +01:00
Artem Chudinov
30926e4738 message.js: Don't use variable signingKeyPacket out of scope 2016-01-07 15:35:47 +01:00
Artem Chudinov
3e2f34ac62 Add missing semicolons 2016-01-07 15:35:47 +01:00
Thomas Oberndörfer
2ee347154c Symmetrically encrypted packet: raise error if MDC is missing for modern cipher. 2016-01-07 15:35:47 +01:00
evilaliv3
9589fa0b52 Apply mixed code review thanks to webstorm inspector 2016-01-07 14:46:55 +01:00
Tankred Hase
85efb463cf Check http status when uploading key 2015-12-27 16:27:55 +07:00
Tankred Hase
450fddaf8e Call encodeURIComponent on hkp query parameters 2015-12-19 15:23:00 +07:00
Tankred Hase
bcde9bfa1a Add HKP lookup example to README 2015-12-12 10:39:38 +07:00
Tankred Hase
6634abf326 Add basic HKP lookup and upload support 2015-12-11 13:12:34 +07:00
Thomas Oberndörfer
668a9bbe70 Throw exception on unsupported S2K type. 2015-10-03 15:57:03 +02:00
Artem Chudinov
9de55b49f3 s2k.js,async_proxy.js: Initialize variable data properly
It fixes error when running the example code (in Node.js with enforced strict
mode) from README.md:

[ReferenceError: data is not defined]
Error: Error generating keypair using js fallback!
    at /tmp/fff/node_modules/openpgp/src/openpgp.js:266:13
    at process._tickDomainCallback (node.js:399:9)
2015-08-19 22:32:06 +05:00
Artem Chudinov
1ee96a3f40 md5.js: Remove an unused variable to support enforced strict mode
The problem was:
arzeth /tmp/test % npm install openpgp
openpgp@1.2.0 node_modules/openpgp
├── node-localstorage@0.3.6
├── es6-promise@1.0.0
└── zlibjs@0.2.0

arzeth /tmp/test % node --version
v3.0.0

arzeth /tmp/test % node
> var openpgp = require('openpgp');
undefined
>

arzeth /tmp/test % node --use_strict
> var openpgp = require('openpgp');
ReferenceError: txt is not defined
    at md51 (/tmp/test/node_modules/openpgp/src/crypto/hash/md5.js:135:7)
    at md5 (/tmp/test/node_modules/openpgp/src/crypto/hash/md5.js:198:14)
    at Object.<anonymous> (/tmp/test/node_modules/openpgp/src/crypto/hash/md5.js:211:5)
    at Module._compile (module.js:430:26)
    at Object.Module._extensions..js (module.js:448:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/tmp/test/node_modules/openpgp/src/crypto/hash/index.js:10:8)
2015-08-19 22:15:21 +05:00
Peter Breitling
07e4278a3a Optimized memory footprint for encrypting and decrypting 2015-06-10 21:12:55 +02:00
Tankred Hase
a12d2ee27e Merge pull request #296 from bartbutler/ie11_keygen
Support for crypto API keygen in IE11 on Windows 7 and 8
2015-06-09 15:43:40 +02:00
Bart Butler
51dbbe2090 tanx update 2 2015-05-22 12:03:59 -07:00
Bart Butler
2a89baa837 tanx updates 2015-05-22 12:02:23 -07:00
Tankred Hase
4d6a34faa1 Implement Symmetric-Key Message Encryption using a passphrase
See https://tools.ietf.org/html/rfc4880#section-3.7.2.2
2015-04-22 01:41:00 +02:00
Thomas Oberndörfer
be6ae2c464 Escape email before using as regular expression in emailCheck method. 2015-03-05 13:32:44 +01:00
Tankred Hase
fca5f7de2b Merge pull request #298 from mailvelope/sig_verify_sub_bind_check
Check validity of key packet before signature verification
2015-03-04 07:17:51 +01:00
Thomas Oberndörfer
a33b8c035d Check validity of key packet before signature verification 2015-03-03 18:15:17 +01:00
Bart Butler
e8465350fc Support for crypto API keygen in IE11 on Windows 7 and 8 2015-02-28 03:43:39 -08:00
Tankred Hase
cb3cc86a88 Add native RSA keygen (WebCrypto) support for Safari/iOS 2015-02-13 22:14:27 +01:00
Tankred Hase
d25c90bff1 Fix AsyncProxy tests 2015-02-11 14:20:42 +01:00
Tankred Hase
da3dbf7acc Set config in AsyncProxy 2015-02-11 14:01:08 +01:00
Sergey Ratiashvili
c9e019d20e fix worker instance misconfiguration 2015-02-11 13:08:13 +01:00
Tankred Hase
1cc3f4fe2e Merge pull request #285 from bartbutler/master
Comparison fix for broken getRandomBigIntegerInRange function
2015-02-11 11:31:58 +01:00
Tankred Hase
06b66d7f62 Merge pull request #274 from mailvelope/get-worker
Add getter method for worker to high level API. Initialization options for AsyncProxy: path and worker.
2015-02-11 11:05:36 +01:00
Krzysztof Kotowicz
587127acd1 Correctly check parameters range in DSA verify. 2015-02-10 12:01:22 +01:00
Bart Butler
0ce32bec92 Need to use compareTo when comparing BigIntegers, otherwise get a string comparison with lexical order 2015-02-08 21:20:07 -08:00
Thomas Oberndörfer
712f807e50 Restore path parameter of initWorker method 2015-01-24 14:44:06 +01:00
Thomas Oberndörfer
a642640cf1 Keyring: use regex for email check. Fix exception if userid does not contain an email address. 2014-12-18 16:28:38 +01:00
Thomas Oberndörfer
de0a6d1259 Helper method: get Keyid object from hex keyid. 2014-12-15 14:34:02 +01:00
Thomas Oberndörfer
c9b4f7532e Add getter method for worker to high level API. Initialization options for AsyncProxy: path and worker. 2014-12-15 14:33:13 +01:00
Thomas Oberndörfer
eb7f854afe Add useWebCrypto to config and set to true 2014-12-15 14:30:22 +01:00
Tankred Hase
f79ce008b7 Merge pull request #268 from bantu/typo-unknow
Typo: Unknow -> Unknown
2014-12-09 16:35:49 +01:00
Tankred Hase
bed393063d Merge pull request #272 from laktak/compress
Compression Support
2014-12-09 15:36:41 +01:00
Christian Zangl
da650e2d63 add compression support (for zip & zlib) using https://github.com/imaya/zlib.js
add zlibjs dependency, grunt task
fix compData vs compdata bug
2014-12-04 22:29:33 +01:00
Andreas Fischer
b00ce34e90 Typo: Unknow -> Unknown 2014-11-17 12:31:04 +01:00
Christian Zangl
8d08d0bd1a fix symkey version 2014-11-12 16:47:32 +01:00
Tankred Hase
eedb722d7b Fall back to js crypto in case native RSA keygen fails 2014-10-29 18:17:03 +01:00
Tankred Hase
d38fc07578 Fix promise documentation 2014-10-28 10:46:49 +01:00
Tankred Hase
2a01399cb3 Update documentation to make returned promises clearer 2014-10-28 10:38:11 +01:00
Tankred Hase
f4682599be Return correct promise in error case 2014-10-20 18:30:26 +02:00
Tankred Hase
2362cce642 Merge pull request #259 from openpgpjs/promises
Refactor public api to use ES6 Promises
2014-10-20 16:12:13 +02:00
Tankred Hase
e3b6903eb1 Use global error catch 2014-10-20 16:10:09 +02:00
Tankred Hase
39e1e145e4 Add es6-promise polyfill to build step so users don't have to. 2014-10-02 10:55:27 +02:00
Tankred Hase
562831d6dc Merge pull request #245 from inovari/master
Bugfix in packet_length calculation
2014-10-02 00:24:23 +02:00
Tankred Hase
bf1cb6d521 Add high level error messages to public api. 2014-10-01 22:20:28 +02:00
Tankred Hase
bdbd7819f4 Fix phantom.js web worker tests that use promises 2014-10-01 21:55:50 +02:00
Tankred Hase
f08fc0a4f7 Refactor web worker async proxy to use promises. 2014-10-01 21:18:05 +02: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
5d07ee1eb1 Add documentation to getWebCrypto 2014-10-01 11:23:34 +02:00
Tankred Hase
72cb1cfc49 Make WebCrypto optional with config.useWebCrypto 2014-10-01 11:17:48 +02:00
Tankred Hase
e6f66b9039 Cleanup promise error handling 2014-10-01 08:40:26 +02:00
Tankred Hase
0af12b81a3 Fix typo 2014-10-01 07:40:02 +02:00
Tankred Hase
7c2cf89589 Fix decoding of JWK. Webcrypto works. 2014-09-30 21:57:46 +02:00
Tankred Hase
85d2199971 Activate web crypto api (still fails tests)
* Remove api support for safari
* Fix error handling
2014-09-30 19:31:12 +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
Thomas Oberndörfer
d6963f2017 map JWK parameters to local BigInteger 2014-09-30 18:20:26 +02:00
Tankred Hase
15edf09972 Add RSA keygen example using WebCrypto Api 2014-09-30 18:20:26 +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
inovari
91ccbeed80 Bugfix in packet_length calculation
One of the bitshifts used to construct tmplen (lines 230-231) was inconsistent with the other expressions:

(input[mypos2++].charCodeAt() << 8)

causing following error:

TypeError: Cannot call method 'charCodeAt' of undefined
    at Object.module.exports.read (/home/scott/dev/keystone/fetch/node_modules/openpgp/src/packet/packet.js:231:16)

Corrected to 

(input.charCodeAt(mypos2++) << 8)
2014-07-16 15:37:06 -04:00
Tankred Hase
e885fb1433 Use same signature array structure in verify for ClearSignedMessages as Message 2014-07-07 12:02:13 +02:00
Tankred Hase
de3ba18400 Implement content verification using detached signatures 2014-07-03 14:57:52 +02:00
Tankred Hase
396199f631 Iterate over signature not keys to allow empty signatures array in case the message has no signatures. 2014-07-02 12:52:14 +02:00
Tankred Hase
8c93688b0e Warn user with signature null for wrong public key instead of exception. 2014-07-01 16:22:09 +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
Tankred Hase
ecb6798441 Throw an error if a wrong public key is used to verify a signature. 2014-06-30 19:26:33 +02:00
Tankred Hase
68a5739354 Merge pull request #232 from msjoinder/single_public_key
API accepts a single public key or an array
2014-06-28 16:44:32 +02:00
Msjoinder
016490656f update function documentation 2014-06-22 20:43:29 +00:00
Msjoinder
74ef7455f5 use .length to test 2014-06-07 15:09:55 -05:00
Msjoinder
4bca02e635 include other key arrays 2014-06-07 14:36:04 -05:00
Msjoinder
1fd2c0f6f4 API accepts single public key string instead of array 2014-06-07 14:11:53 -05:00
Chris Wiegand
47cf9b6980 fix JSON.parse(null)
if window.localStorage.config is null then JSON.parse returns an error about "u" not being valid (the word "undefined" is not valid JSON apparently :). So I test for null-ness first.
2014-06-03 21:55:16 -06:00
Tankred Hase
896e90c1ee Merge pull request #223 from toberndo/unify_verify_interface
Allow private keys for verify methods in Cleartext and Message class.
2014-05-17 09:20:32 +02:00
Thomas Oberndörfer
172855a8e9 Redefine Regex for blank line after armor header. This fixes an issue with truncated blank lines at the beginning of cleartext signed messages. 2014-05-16 19:08:29 +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
Tankred Hase
b21bab2e42 Merge pull request #218 from toberndo/opt_prim_user
Minimize signature verifications to evaluate primary user
2014-05-02 11:32:32 +02:00
Thomas Oberndörfer
8ea87050bd Minimize signature verifications to evaluate primary user 2014-04-26 10:50:55 +02:00
Thomas Oberndörfer
b7847c072a Fix twofish cipher: did not accept typed arrays. 2014-04-25 16:35:43 +02:00
Thomas Oberndörfer
e1dffffe8d Refactor cfb.encrypt: fix inconsistent output depending on plaintext length. Use typed arrays for ciphertext. 2014-04-25 16:33:28 +02:00
Thomas Oberndörfer
82b18c61f3 Add empty read method to trust packet. Otherwise import of key with a trust packet will fail. Trust packets are ignored and filtered out by the Key class. 2014-04-04 17:33:30 +02:00
Thomas Oberndörfer
5e74302973 Keyring: don't break on error reading armored key. 2014-04-04 17:14:39 +02:00
Thomas Oberndörfer
ced145865e Accept armor header with trailing whitespace 2014-04-04 16:00:26 +02:00
Thomas Oberndörfer
86537fb48c Add support to write V3 signatures 2014-04-03 21:21:56 +02:00
Tankred Hase
4bf2fbf985 Merge pull request #207 from openpgpjs/ie11
Fix random.js for IE11
2014-04-02 19:52:13 +02:00
Thomas Oberndörfer
fb8f2a2a57 Implement user attribute packet write() 2014-04-02 19:21:44 +02:00
Tankred Hase
79309b6a88 Fix random.js for IE11 2014-04-02 18:38:24 +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