Commit Graph

582 Commits

Author SHA1 Message Date
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
Thomas Oberndörfer
d28eb4406d Fix error message for unsupported key packet version 2014-04-02 12:39:35 +02:00
Tankred Hase
9d428a735b Merge pull request #205 from openpgpjs/bundles
Generate openpgp.js without source map. New source map target is openpgp...
2014-03-31 16:23:52 +02:00
Thomas Oberndörfer
a4598f3bd4 Generate openpgp.js without source map. New source map target is openpgp_debug.js. Change dependency of workers: openpgp.worker.js -> openpgp.js, openpgp.worker.min.js -> openpgp.min.js. Remove openpgp.js with maps from unittests-bundle.js 2014-03-31 16:09:23 +02:00
Thomas Oberndörfer
06adf49122 Merge pull request #202 from PawelGorny/fixSigUnknwTypeNotation
An implementation SHOULD ignore any subpacket of a type that it does not recognize
2014-03-31 12:39:30 +02:00
Thomas Oberndörfer
867900cb37 Merge pull request #188 from toberndo/fix_partial_body_length
Fix packet partial body length
2014-03-31 12:13:23 +02:00
Thomas Oberndörfer
e8ef355604 OP-01-010 Invalid Armor Checksum Validation (Low) 2014-03-29 16:25:28 +01: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
b9c597a41a OP-01-003 Suggested Code Enforcement of RandomBuffer (Low). Clearing random number from buffer after usage. buffer variable is still a public. 2014-03-28 13:16:33 +01:00
Thomas Oberndörfer
1acf1cff9a OP-01-002 Math.random() usage in dead Code Branch (Low) 2014-03-28 10:29:23 +01:00
Thomas Oberndörfer
4d96089f72 OP-01-001 Type confusion in crypto.random.RandomBuffer (Low) 2014-03-27 15:49:10 +01:00
Thomas Oberndörfer
ed13502dc2 OP-01-025 EME-PKCS1-v1_5 Error Handling in RSA Decryption (High). Rewrite pkcs1.eme.decode() and pkcs1.eme.encode(). Add fix from jsbn 1.4 release. 2014-03-27 12:58:58 +01:00
Thomas Oberndörfer
79dbb2e6dd Errata 2270: Fix ASN.1 prefix for SHA224. http://www.rfc-editor.org/errata_search.php?rfc=4880&eid=2270 2014-03-26 18:15:29 +01:00
Thomas Oberndörfer
357d49f7e9 OP-01-026 Errors in EMSA-PKCS1-v1_5 decoding routine (High) and OP-01-018 Suggested improvement in RSA signature verification (Low). Do RSA signature verification as described in RFC 3447 Section 8.2.2. Remove pkcs1.emsa.decode(). Rewrite pkcs1.emsa.encode(). Hash algorithms: throw exception on error condition. 2014-03-26 18:04:58 +01:00
PawelGorny
48ec28fef2 An implementation SHOULD ignore any subpacket of a type that it does not
recognize.
2014-03-24 21:36:57 +01:00
Thomas Oberndörfer
28e7a80eba OP-01-011 Error suppression in UTF-8 decoding function (Medium). Add check for parameter type to decode_utf8. 2014-03-21 18:32:05 +01:00
Thomas Oberndörfer
3f626f4bfb OP-01-024 Random Range Bias in DSA/Elgamal (Low). Fix ranges, add TWO constant to BigInteger. 2014-03-21 17:12:02 +01:00
Thomas Oberndörfer
04680a67cd OP-01-020 Missing check in DSA signature generation (Medium). Add check and repeat until r and s not equal to 0. 2014-03-21 16:45:19 +01:00
Thomas Oberndörfer
93ca8b62fe OP-01-019 Cleartext Message Spoofing in Armor Headers (Critical). Fix: throw error if unknown ASCII armor type. 2014-03-21 16:11:48 +01:00
Thomas Oberndörfer
329c92bc73 OP-01-009 Cleartext Messages Spoofing by Lax Armor Headers parsing (Critical). Add armor header verification. Verify "Hash" header in cleartext signed message. 2014-03-21 15:37:52 +01:00
Thomas Oberndörfer
105ec06da3 Throw error when trying to use IDEA cipher 2014-03-18 18:42:52 +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
9f23c6a891 OP-01-005 Side-channel leak in RSA decryption (High). Add config option for RSA blinding, default true. Update jsbn to 1.3. Remove decrypted packets after Message.decrypt(). 2014-03-17 11:54:40 +01:00
Thomas Oberndörfer
e1fcc51d0e OP-01-015 EME-PKCS1-v1_5 padding uses Math.random() (Critical) 2014-03-12 21:24:52 +01:00
Tankred Hase
3604f19eb9 Add onerror handler to Worker to see uncaught errors 2014-03-07 23:04:22 +01:00
Thomas Oberndörfer
6bb53f04b4 Merge pull request #176 from Matze2010/master
Possibility to set filename of literal data packet (tag 11)
2014-02-27 13:07:28 +01:00
Thomas Oberndörfer
1a4c504bc7 Fix packet partial body length 2014-02-27 13:01:47 +01:00
Tankred Hase
7cba2be2fc Merge pull request #179 from toberndo/keyring_enh
Refactoring keyring, Key update method, Fixes
2014-02-27 11:04:25 +01:00
Thomas Oberndörfer
1dfdfb62cb Keyring: simplify API, accept 16 char hex or fingerprint as keyid. 2014-02-26 11:45:03 +01:00
Tankred Hase
3d423655c4 reduce memory allocations in aes block cipher, optimize performance test 2014-02-26 00:20:46 +01:00
Tankred Hase
9e23b94db3 clean wroning api usage in cfb 2014-02-25 14:55:29 +01:00
Tankred Hase
ec4a0aca46 use typed array in aes and cfb, cleanup for loops 2014-02-25 14:38:52 +01:00
Tankred Hase
afabb56d41 use forge sha256 implementation 2014-02-25 12:47:45 +01:00
Tankred Hase
31f9064e90 use string instead of array in cfb encrypt 2014-02-25 10:50:57 +01:00
Tankred Hase
47d86825e2 cleanup for loops, use strings += instead of array.push/join, use strict mode 2014-02-25 09:55:58 +01:00
Tankred Hase
6b81995dd5 remove aes args from global scope 2014-02-25 00:05:43 +01:00
Tankred Hase
d0c319dd49 minor optimizations in cfb mode 2014-02-24 21:30:21 +01:00
Thomas Oberndörfer
151694ff07 Write unhashed subpackets. Fix #178. 2014-02-23 20:51:02 +01:00
Thomas Oberndörfer
5d4d3f5ba1 Fix structure cloning after keyid buffering change 2014-02-23 20:49:51 +01:00
Thomas Oberndörfer
efc384e71c Keyring: separate storage for public and private keys. ImportKey method supports update. 2014-02-23 20:48:38 +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
Tankred Hase
fb2ca2ed03 Merge pull request #175 from openpgpjs/async-api
Async api
2014-02-12 22:20:40 +01:00
Tankred Hase
37c6ab8a0c do clearer case checking and load minified lib in worker 2014-02-12 19:28:54 +01:00
Matze2010
3a984edb02 Possibility to set filename of literal data packet (tag 11)
The filename of the literal data packet was hardcoded to msg.txt. Now
one has the possibility to manually set the filename of the literal
data packet.
2014-02-12 17:54:36 +01:00
Tankred Hase
e431f686b1 update docs 2014-02-12 17:05:52 +01:00
Tankred Hase
b0bd5168a8 add optional callback to public api and invoke AsyncProxy behind the scenes 2014-02-12 15:11:06 +01:00
Daniel
78adbdda42 Fixing typo as reported in issue #172 2014-02-11 14:56:48 -08:00
Thomas Oberndörfer
753b1fc637 Method getKeysForKeyId renamed and optimized, returns only single key. Deep optional parameter to search also in subkeys. Add method getKeyForLongId with same properties. Optimize access to keyid and fingerprint by using a buffer. 2014-02-10 18:57:17 +01:00
Thomas Oberndörfer
c47e1d8780 Fix getPrivateKeyForAddress. Replace global openpgp with specific modules. 2014-02-06 17:26:55 +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
191eca353e Merge branch 'pr/170' 2014-02-06 12:23:47 +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
Lars Olzem
69bf01fb86 fix keyring email check 2014-02-05 17:10:25 +01:00
Lars Olzem
c88718d1b6 add description 2014-02-05 14:29:40 +01:00
Lars Olzem
f5b88ea2ac fix calue access 2014-02-05 14:01:27 +01:00
Lars Olzem
0f16fc4be4 add variable item name in localstore 2014-02-05 13:14:23 +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
Tankred Hase
01469be87f Merge pull request #163 from MarcoPolo/master
Fixed keyring local storage
2014-02-02 09:14:44 -08:00
Tankred Hase
95db18eb4a Add unit test to catch #156 and fix it 2014-01-31 14:03:59 +01:00
Marco Munizaga
875ccf5196 Fixed keyring local storage 2014-01-31 02:26:57 -05:00
Thomas Oberndörfer
040ccbaf2c Web worker: simplify random data supply 2014-01-20 09:56:02 +01:00
Thomas Oberndörfer
abf0545208 Change internal representation of random data from Uint32Array to Uint8Array 2014-01-18 16:37:15 +01:00
Thomas Oberndörfer
37213e1654 Web worker: add decryptKey and decryptKeyPacket methods to proxy 2014-01-16 16:44:05 +01:00
Thomas Oberndörfer
a777371418 Web worker: unit tests for random buffer and entropy estimation 2014-01-16 13:34:31 +01:00
Thomas Oberndörfer
c9910929df Fix: clear subpackets of symmetrically encrypted packet after encryption 2014-01-15 19:44:00 +01:00
Thomas Oberndörfer
1fa47f0b4b Web worker: add entropy estimation 2014-01-15 19:40:57 +01:00
Thomas Oberndörfer
17c6f90113 Unit tests for web worker. Only active for browsers. 2014-01-13 15:42:03 +01:00
Thomas Oberndörfer
3612fc12dc Add web worker support. Load the whole library in a web worker
and make the high-level API accessible from an asynchronous proxy.
Entropy is seeded to worker on each generateKeyPair() call.
Allow serialization of packets and custom types for messaging API.
2014-01-13 13:56:06 +01:00
Robert Nelson
ec061ba101 Fix travis problem hopefully for real this time 2014-01-09 09:59:25 -08:00
Robert Nelson
4719966988 Fix travis problem 2014-01-09 09:40:57 -08:00
Robert Nelson
c951b64741 Merge branch 'nodejs-fixes' into standalone
Conflicts:
	src/crypto/random.js
2014-01-09 08:04:21 -08:00
Robert Nelson
5768fd5b23 Fix nodejs support 2014-01-09 07:51:05 -08:00
Robert Nelson
4cabe075d5 Add standalone support 2014-01-09 07:31:00 -08:00
Robert Nelson
9f4e6e7ebb Add files missed in last commit 2014-01-09 02:47:57 -08:00
Robert Nelson
3680695a69 Implement node.js support and cleanup source tree.
Rename resources to dist.

Eliminate keyring bundle and expose keyring class in openpgp module.

Add mochaTest grunt task to run node server-side tests.

Add node_pack grunt task to create npm package into dist and install it for testing.

Add node_store config property which specifies location of localStorage emulation when using node.

Add repository info to package.json.

Move util.js to src directory from util since it is the only file there.

Rename class properties in openpgp to the new class names.
2014-01-09 02:29:30 -08:00
Robert Nelson
57c98386f9 Add node.js support 2014-01-08 09:01:15 -08:00
Robert Nelson
82fbc0ffa7 Merge branch 'pr/144' 2014-01-06 19:50:08 +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
Tankred Hase
06e4b83943 fix tests 2014-01-03 21:53:41 +01:00
Tankred Hase
3d67721fb5 remove old files 2014-01-03 20:40:05 +01:00
Tankred Hase
deb64215c8 Merge remote-tracking branch 'origin/devel' 2014-01-03 19:26:40 +01:00
Robert Nelson
31b5427c87 Merge branch 'devel' into lint-fixes 2014-01-03 10:11:36 -08:00
Tankred Hase
1cec81d576 merged devel into master 2014-01-03 18:48:27 +01:00
Robert Nelson
3d4dfaea87 Add function names to constructors 2014-01-02 12:50:48 -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
Thomas Oberndörfer
a31fe80a2c Merge readPublicKey for V3 and V4 2013-12-12 16:17:01 +01:00
Thomas Oberndörfer
d7d74ec5e3 Verify V3 certification signatures 2013-12-12 14:22:23 +01:00
Thomas Oberndörfer
ff8d93f956 Fix key expiration time. Add key revocation unit test. 2013-12-12 12:05:00 +01:00
Thomas Oberndörfer
d22facc61c Remove CP-1252 cleartext signature unit-test 2013-12-09 19:33:30 +01:00
Thomas Oberndörfer
5fd4bdbccb Fix make bundle-test and keyring unit-tests 2013-12-09 16:57:44 +01:00
Robert Nelson
1c07c482aa Create a bundle for keyring and split out the store code 2013-12-08 20:54:25 -08:00
Robert Nelson
f00d3210aa Convert keyring to use key interface rather than the packetlist. 2013-12-08 19:35:01 -08: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
5d32718096 Normalize end of line, add getter and setter for text in literal data packet. 2013-12-08 14:24:52 +01:00
Robert Nelson
5f30c67499 All signature unit tests passing now 2013-12-06 14:26:11 -08:00
Robert Nelson
f57de1ec40 Unit tests passing 2013-12-06 09:56:05 -08:00
Robert Nelson
03d0d44061 Signature fixes 2013-12-05 22:31:33 -08:00
Robert Nelson
e6a116d14e Fix warnings from 'make minify' + other bugs 2013-12-05 20:12:20 -08:00
Robert Nelson
f0c2427895 Array indexing on strings is nonstandard and doesn't work on IE 2013-12-05 20:03:08 -08:00
Robert Nelson
f07702e867 More consistency changes 2013-12-05 12:29:52 -08:00
Robert Nelson
e965b6771b Cleanup canonical message handling for signatures 2013-12-05 12:21:23 -08:00
Tankred Hase
8c16abbfee bugfix for only call showMessage if it was defined 2013-12-05 12:37:55 +01:00
Tankred Hase
fecad8b8c0 only call showMessage if it was defined 2013-12-05 12:33:03 +01:00
Robert Nelson
8110782633 Fix checksum failure debug message 2013-12-04 15:42:56 -08:00
Thomas Oberndörfer
f6176ed484 Move key generation to Key class 2013-12-04 16:45:14 +01:00
Thomas Oberndörfer
7e711510cc Implement cleartext signed messages 2013-12-02 20:11:21 +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
Robert Nelson
63db9246c6 Enhance debugging output and fix escaped dashes. 2013-12-01 17:46:56 -08:00
Robert Nelson
e1908496c7 Add verification for version 3 signatures 2013-11-30 22:29:28 -08:00
Robert Nelson
84f6483cba Fix signing with version 3 keys 2013-11-30 21:17:04 -08:00
Robert Nelson
1f4911450b Resolve two more situations
Handle messages with strings of dashes.

Work around IE bug with split().
2013-11-30 12:29:47 -08:00
Thomas Oberndörfer
c2a79368dc Add verify method to message class and other improvements. Implement openpgp.decryptAndVerifyMessage. Allow parsing of unhashed signature subpackets. 2013-11-30 17:29:20 +01:00
Robert Nelson
f59fa54ecf Fix ascii dearmor and signature verification bugs 2013-11-29 19:29:57 -08:00
Robert Nelson
b4676d2ad8 Merge branch 'misc-fixes' into signature-fix 2013-11-29 18:34:36 -08:00
Robert Nelson
8b854a2ad1 Fix warnings from 'make minify' + other bugs 2013-11-29 17:08:17 -08:00
Robert Nelson
e4e69749a6 Don't use array indexing on strings it is nonstandard and doesn't work on IE 2013-11-29 16:10:56 -08:00
Thomas Oberndörfer
b0ea97ec28 Make packet tests run. Rename test files, move signature tests to general folder.
Split keyring tests in own file. Add tests for V3 signatures and fix verification.
2013-11-26 18:30:17 +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
22ad0d3505 Implement signAndEncryptMessage function. Fix packet_one_pass_signature.write(). 2013-11-19 16:30: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
1be6b8b858 Remove keyring from openpgp namespace. Optimize keyid initialization. 2013-10-24 12:19:46 +02: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
91070f9750 Changing main api to be more key dependent 2013-10-18 21:46:38 -04: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
8baaa7f511 Fixing the signature to work properly with "hashed" subpackets. 2013-10-17 23:03:13 -04:00
seancolyer
4872b8c720 Work towards signature. There seems to be an issue with generating the
dates of signature packets, gpg is unable to read the results. We used
to do this correctly, so need to figure out exactly what's different..
2013-10-15 22:46:32 -04:00
seancolyer
52cf3eced8 Working towards key generation, started cleanup of config, changing
armor api slightly to pass in whether or not to show version string, not
entirely happy with current solution.
2013-10-14 22:52:10 -04:00
seancolyer
42f26e543e Work around key generation. We need to get the signature data-passing
platform ironed out for things like certifying keypairs/user ids.
2013-10-13 15:39:45 -04:00
seancolyer
11acf33665 Including @arlolra changes to improve MillerRabin 2013-10-09 19:16:31 -04:00
seancolyer
b94566a154 Rebuilding binaries. Fixing minor issue with PR#105 2013-10-09 19:09:54 -04:00
Sean Colyer
81fdb00418 Merge pull request #111 from cryptoreddit/patch-1
In Base64 encoding, if result ends in \n, remove it. (Fixes #79, #105)
2013-10-09 16:06:42 -07:00
Sean Colyer
a856396016 Merge pull request #82 from arlolra/bases
Avoid repeating bases in MillerRabin.
2013-10-09 16:05:19 -07:00
Sean Colyer
14e50a4661 Merge pull request #105 from dcposch/master
Fixed ASCII armor decoding bug
2013-10-09 15:44:35 -07:00
cryptoreddit
ad1983ac12 In Base64 encoding, if result ends in \n, remove it. (Fixes #79, #105) 2013-10-09 09:58:13 -07:00
Niklas Femerstrand
4379bba2cd Fixes erroneous linefeed handle in write_signed_message()
Fixes #109, courtsey of encomiast
2013-10-09 23:36:46 +07:00
seancolyer
7abaa43497 Initial gruntfile support. Forcing a standardized style. 2013-10-08 22:33:36 -04:00
seancolyer
fae321a1e3 Further test work, make keyring marginally work. Start end-to-end work. 2013-10-08 21:54:40 -04:00
seancolyer
30d2c38f00 Started cleaning up the public API/Keyring to use the "packetlist"
concept. More cleanup still to do, also need to determine best way to
submodule keyring. Ripping out previous packet.io addition because it
isn't needed/ goes against packetlist.
2013-10-06 21:44:46 -04:00
DC
d19d1993c6 Fixed ASCII armor decoding bug
Sometimes, there's a blank line between the encoded message body and the checksum line at the end. In those cases, decryption used to crash. Changed only openpgp_encoding_deArmor() in openpgp.encoding.asciiarmor.js to make it resilient to this case.

Cleaned up copy+pasted code in the same function. No other changes.
2013-09-22 20:29:33 -07:00
seancolyer
766d3e34fe Start working on openpgp.sigcheck.js tests. I have exposed packetParser
as packet.io to src/openpgp.js, I think that will quickly be revisited.
2013-09-21 19:39:15 -04:00
atrevarrow
41f0a040e9 Fixed DES/TripleDES padding and added unit tests 2013-08-27 23:23:58 +12:00
seancolyer
ba8a964d05 Merge branch 'pr/95'. Had to manually build make because previously
merged pr96.

Conflicts:
	resources/openpgp.js
	resources/openpgp.min.js
2013-08-25 19:11:12 -04:00
seancolyer
020a46ea3b Test cleanup. 2013-08-22 22:47:46 -04:00
Thomas Oberndörfer
ee993ec623 Convert userId to UTF8 before generating signature 2013-08-20 16:24:23 +02:00
seancolyer
ae1cb14bfb Further test cleaning. openpgp.crypto.js test runs now, next step, make
it pass.
2013-08-19 21:24:17 -04:00
seancolyer
b7d0322b8e Test cleanup, and fall out from that. test/crypto/openpgp.crypto.js is
still broken because DSA still has issues. I'm guessing elgamal will too
once the DSA ones are fixed.
2013-08-18 17:37:37 -04:00
atrevarrow
86df06f8da Fixed DES/TripleDES padding issues which fixed broken TripleDES unit test; added unit tests for DES padding 2013-08-14 00:33:00 +12:00
Thomas Oberndörfer
322f57cc17 Handle wrong UTF8 encodings gracefully 2013-07-12 14:59:38 +02:00
Thomas Oberndörfer
a2db324605 Fix exception in packet.keymaterial.getKeyId() for V3 keys 2013-06-27 11:50:01 +02:00
Thomas Oberndörfer
5898cea4de DeArmor: remove whitespace of blank line 2013-06-25 16:25:10 +02:00
Arlo Breault
ab32d1b9e1 Avoid repeating bases in MillerRabin. 2013-06-15 22:39:32 -07:00
Michal Kolodziej
7d6cc3c771 Initial support for node.js testing. 2013-05-12 23:27:48 +02:00
Michal Kolodziej
c77a17cf31 Twofish test is working once more. 2013-05-12 19:05:13 +02:00
Michal Kolodziej
3537b92a51 Cleanup of symmetric crypto functions and definitions. Broke a few tests. 2013-05-12 14:27:23 +02:00
Michal Kolodziej
664ab71686 Switch to browserify. Basic unit tests are working. 2013-05-11 21:55:48 +02:00
Michal Kolodziej
18236ac097 A ton of changes regarding browserify support. Non functional as of now. 2013-05-11 16:03:25 +02:00
Michal Kolodziej
f421dc0d72 Restructuring and more work on browserify support. 2013-05-11 08:25:53 +02:00
Michal Kolodziej
ccc0a4eb48 Initial browserify support. Symmetric encryption algorithms
and hashes are now working.
2013-05-10 23:50:00 +02:00
Michal Kolodziej
844ebcf254 Minor fixes, work on the msg.* subsystem. 2013-05-10 22:48:11 +02:00
Michal Kolodziej
c64c75bf04 Merged public and secret keys where appropriate. 2013-05-10 19:09:24 +02:00
Michal Kolodziej
77acb5a59a Working signature creation. 2013-05-09 16:51:25 +02:00
Michal Kolodziej
1e49e8ee23 Encryption of secret key packets is working. 2013-05-09 14:25:09 +02:00
Michal Kolodziej
ab31b39d2f Signature verification on primary key is working! 2013-05-09 09:31:50 +02:00
Michal Kolodziej
ba68203b56 Changed up the verification api - it accepts multiple packets now. 2013-05-08 23:11:57 +02:00
Michal Kolodziej
e1e2223e8f Signature verification is working on literal packets. 2013-05-08 13:04:25 +02:00
Michal Kolodziej
3d25fdf8bf Work on bending the signature packet to my will. 2013-05-04 23:05:46 +02:00
Michal Kolodziej
dd5d0c801c Secret key packet decryption is working though, there
is still work to be done in the decryption function
as it's quite a mess still.
2013-04-27 18:14:57 +02:00
Michal Kolodziej
a907dfa7c9 Fixed time. 2013-04-27 16:46:19 +02:00
Michal Kolodziej
03382cbec1 Made sym key and s2k writable. 2013-04-27 16:15:07 +02:00
Michal Kolodziej
a115cccc53 Fixed s2k implementation somewhat. 2013-04-26 18:54:41 +02:00
Michal Kolodziej
1f9bc46a81 Encryption to a subkey from a GPG generated message is working.
Still no decryption and keys are transmitted in plaintext!
2013-04-26 15:48:19 +02:00
Michal Kolodziej
6fe166fa87 Reading of unencrypted secret key packets seems to be working. 2013-04-25 17:28:43 +02:00
Michal Kolodziej
530a9a0c69 Changed mpi interface to a more sane variant - openpgp
methods MUST return openpgp_type_mpi, using BigIntegers
is prohibited as otherwise the wrapper has no point.
2013-04-24 10:46:43 +02:00
Michal Kolodziej
6d45a19f88 Public key encrypted sesssion key is working. 2013-04-24 09:08:55 +02:00
Michal Kolodziej
43c5d1b30d Changed up the interface. Instead of a dedicated list,
all packets are directly on the packetlist object.
2013-04-23 10:19:01 +02:00
Michal Kolodziej
38330ea4a6 Sym encrypted session key is working, decryption of messages
from gpg works too! Fixed some minor bugs and got rid of a
few globals.
2013-04-23 10:03:28 +02:00
Michal Kolodziej
3a3764a436 Added test and working code to the sym encrypted integrity protected packet. 2013-04-22 19:56:51 +02:00
Michal Kolodziej
3f04470e1f First working packet: writing/reading sym encrypted
and literal packets is working. Tests added.
2013-04-22 18:03:50 +02:00
Michal Kolodziej
c190784ffd Working on making the new packet infrastructure run. 2013-04-22 17:04:20 +02:00
Michal Kolodziej
93a7a751fd Started work on providing an uniform interface to all
packet classes that actually uses the object values
instead of igroring them.
2013-04-21 20:38:19 +02:00
seancolyer
aa8a7f94f1 Switching default hash preference to SHA256. 2013-04-20 22:16:32 -04:00
Sean Colyer
21726d5b8b Merge pull request #72 from dreamingofelectricsheep/ascii-fix
Fixed handling of windows line endings within the ascii dearmoring
2013-04-20 17:40:45 -07:00
Michal Kolodziej
23295342fc Added utf8 awareness to the literal and userid packet classes. Made s2k
work correctly with utf8 strings. Fixeda visibility issue with the
testing suite and added relevant unit tests.
2013-04-16 10:47:17 +02:00
Michal Kolodziej
6d7df71c58 Fixed handling of windows line endings within the ascii
dearmoring function.
2013-04-15 16:37:54 +02:00
Michal Kolodziej
51f8f95807 Finished changing all the javascript files, the documentation
now correctly generates via the use of the makefile.
2013-04-12 14:21:07 +02:00
Michal Kolodziej
6242e72a1d Crypto.sym 2013-04-12 13:04:00 +02:00
Michal Kolodziej
8545feb03d Fixed documentation for cfb and crypto files 2013-04-12 13:00:09 +02:00
seancolyer
f69fa5ccab Fix bug with key material expecting s2k.type to exist which breaks with
passphrase-free keys.
2013-03-06 20:36:26 -05:00
Sean Colyer
1778756c70 Merge pull request #66 from toberndo/hushmail_keys
Fix exception on unknown signature
2013-02-28 05:39:38 -08:00
Thomas Oberndörfer
37ade02c32 Fix exception on unknown signature 2013-02-28 10:28:10 +01:00
Thomas Oberndörfer
a5c1740729 V4 keys: prefer subkeys for encryption 2013-02-28 10:11:53 +01:00
Brian Bloniarz
2bb3c30025 openpgp_keyring include subkeys by ID
openpgp_keyring.getPublicKeysForKeyId will now search subkeys
when looking for the ID, and return a key object based on that
subkey.

Updated to add a method, getSubKeyAsKey, to openpgp_msg_publickey.
This returns a full-fledged openpgp_msg_publickey object for a
chosen subkey.
2013-02-13 22:31:27 -08:00
Brian Bloniarz
4a99ed0dfa Add support for GnuPG type 1001 s2k extension
This is a Gnu extension for private keys with stripped secrets, which
can be created by GnuPG's --export-secret-subkeys mode.

Before this patch, "ERROR:  unknown s2k type! 101" would be logged as an
error (though other than that, things seemed to function normally).
2013-02-06 08:36:56 -08:00
Brian Bloniarz
a2f343995a fix array index in verify() with multiple pubkeys.
The log message was showing the Ith userId of the Ith pubkey,
which may not exist. All other code paths use the 0th userid
of the Ith pubkey, do that too.
2013-02-06 08:31:06 -08:00
Brian Bloniarz
b128e2c521 Fix signature check scoping issue.
Signature checks were failing, in the binary-document case of
openpgp_packet_signature.verify() the variable i was being referenced
when there was no i in scope; instead it was getting 8 from a global
variable i, and trimming 8 bytes off the beginning of the data.

The global i was being set by the CAST5 cipher -- this also fixes
that to be a local variable.

Also add unit test to confirm.
2013-02-06 08:26:16 -08:00
seancolyer
77974db1a6 Merge branch 'refactor'. Also marking resources/openpgp*.js files as
binary to make some merge/diffing easier.

Conflicts:
	resources/openpgp.js
	resources/openpgp.min.js
2013-01-14 20:44:58 -05:00
freewil
7dfda1ebf4 fix 2 minor typos 2013-01-04 11:58:51 -05:00
Sean Colyer
968dca9436 Initial work with refactor. Everything should still be functional, but more cleanup can still be done. 2012-10-07 23:44:58 -04:00
Sean Colyer
a50c7a7f4d Fix for ZLIB issue (endless loop), and dynamic header lengths. 2012-10-06 11:39:07 -04:00
Sean Colyer
7aa4a83474 Updates to documentation. Most all classes should now be jsdoc compliant. 2012-09-11 21:54:42 -04:00
Sean Colyer
9f4df57679 Added more jsdoc. 2012-09-05 21:59:31 -04:00
Thomas Oberndörfer
051253c383 Add extractPublicKey() method to private key 2012-09-04 10:20:52 +02:00
Thomas Oberndörfer
0ec3252ba5 Use JXG for ZIP decompression 2012-08-27 14:33:48 +02:00
Sean Colyer
f300b0a1c0 Started modifying inline docs to work with jsdoc3 project, https://github.com/jsdoc3/jsdoc. Built doc based on our source and added to doc directory. Our inline docs need more cleanup, but this document structure looks promising. 2012-08-21 23:23:06 -04:00
Sean Colyer
a82b075a01 Merge branch 'master' of github.com:openpgpjs/openpgpjs into HEAD
Conflicts:
	resources/openpgp.js
	resources/openpgp.min.js
2012-07-30 20:48:10 -04:00
Sean Colyer
bfe37309b0 Change to ignore case when looking up keys. Change to transform both input and keyring keys to use .toLowerCase().
Prompted by: https://github.com/seancolyer/gmail-crypt/issues/12
2012-07-30 20:43:41 -04:00
Sean Colyer
9165232017 Changes to build process to show version number as date rather than hardcoded 0.1. Small doc change. 2012-07-30 20:07:48 -04:00
Thomas Oberndörfer
e42b53199e Use jsxcompressor for ZLIB compressed data packets 2012-06-26 17:06:33 +02:00
Thomas Oberndörfer
028ee46d81 Merge zip.js and inflate.js into zip.js due to dependency in execution order. Remove inflate.js. Add import for zlib compression to test/encryption.html 2012-06-25 10:30:46 +02:00
Thomas Oberndörfer
0ce9a0587d Cleanup: bring tag type blocks in read_message() in order (non-functional) 2012-06-19 18:01:29 +02:00
Thomas Oberndörfer
717fc47fa4 Fix endless loop in read_message() for messages that start with Marker packet 2012-06-19 18:00:55 +02:00
Sean Colyer
3109555137 Added some verification to keyring to check valid email address is being queried. Added a regex to util.js that we can use throughout. 2012-05-07 21:39:43 -04:00
Sean Colyer
245c93440f Added decompression for RFC 1950 - ZLIB. Based this off of the fact that this RFC is heavily dependent on RFC 1951. This solution isn't perfect, it doesn't check the ADLER 32. This is a TODO. 2012-04-29 00:01:07 -04:00
Sean Colyer
66a090c85d Added support for Decompressing messages of Type 1, RFC 1951 - ZIP. 2012-04-28 00:16:00 -04:00
Tankred Hase
7d2723009b fixed getPrivateKeyForKeyId... I hope 2012-04-24 15:14:24 +08:00
Sean Colyer
c86c6043de Fix key generation s2k c value to be a constant 96, which will equate to an iterator of 65536. This is the standard GPG uses. 2012-04-20 21:14:37 -04:00