Commit Graph

179 Commits

Author SHA1 Message Date
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
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
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
86537fb48c Add support to write V3 signatures 2014-04-03 21:21:56 +02:00
Thomas Oberndörfer
fb8f2a2a57 Implement user attribute packet write() 2014-04-02 19:21:44 +02:00
Thomas Oberndörfer
d28eb4406d Fix error message for unsupported key packet version 2014-04-02 12:39:35 +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
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
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
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
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
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
d6e4e3c028 Add key update method. Fix getPrimaryUser: evaluation of most significant self signature. 2014-02-23 20:46:52 +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
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
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
1fa47f0b4b Web worker: add entropy estimation 2014-01-15 19:40:57 +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
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
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
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
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
03d0d44061 Signature fixes 2013-12-05 22:31:33 -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
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
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
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
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
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
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
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
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
Thomas Oberndörfer
a2db324605 Fix exception in packet.keymaterial.getKeyId() for V3 keys 2013-06-27 11:50:01 +02:00
Michal Kolodziej
7d6cc3c771 Initial support for node.js testing. 2013-05-12 23:27:48 +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
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