Commit Graph

378 Commits

Author SHA1 Message Date
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