Commit Graph

136 Commits

Author SHA1 Message Date
Daniel Huigens
0372bf78f1 Make (de)armoring and packet reading asynchronous 2018-08-10 14:44:01 +02:00
Daniel Huigens
403bdc5346 Streaming decryption (Web) 2018-08-10 14:44:01 +02:00
Daniel Huigens
9853d3d830 Streaming encryption (Web) 2018-08-10 14:44:01 +02:00
Daniel Huigens
3fd0fa8f68 Various key revocation fixes 2018-07-13 17:45:09 +02:00
Daniel Huigens
b5c6e655de Warn about console usage 2018-05-03 13:07:52 +02:00
Sanjana Rajan
92542e3ee4 fix #636 2018-04-26 13:19:02 -07:00
Daniel Huigens
c63ed980a1 Fix dash-escaping the first line of cleartext signed messages 2018-04-25 19:46:43 +02:00
Mahrud Sayrafi
08da24de27
documentation fixes 2018-03-08 10:55:58 -08:00
BafS
b672f1936a Use let and const ES6 features.
Remove var, for let or const if possible, clean some syntax, enforce one var per declaration and semicolons
2018-02-13 23:33:09 +01:00
BafS
de6ffc2f76 Remove 'user strict'
'use strict' is unnecessary inside modules because module code is always strict mode code. Ref: https://www.ecma-international.org/ecma-262/6.0/#sec-strict-mode-code
2018-02-13 23:33:09 +01:00
Mahrud Sayrafi
5cb89f4f25 Addresses various review comments by @sanjanarajan
* Various FIXME tags are removed
 * In curve.js:
  - webCrypto/nodeCrypto fallback bug is fixed
  - Curve25519 has keyType ecdsa (won't be used for signing, but technically can be)
  - webGenKeyPair is simplifed
 * In base64.js:
  - documentation added and arguments simplified
 * In ecdsa.js and eddsa.js:
  - hash_algo is now at least as strong as the default curve hash
  - simplified the code by moving webSign/nodeSign and webVerify/nodeVerify to live in key.js (ht @ismaelbej)
 * In message.js:
  - in decryptSessionKey, loops break once a key packet is decrypted
 * In key.js:
  - getPreferredHashAlgorithm returns the best hash algorithm
  - enums are used for curve selection
2018-01-30 18:36:26 +01:00
Mahrud Sayrafi
dcff16d32b npm test and grunt browsertest can run side by side now; npm tests pass, browser stuck on problem related to asn1.js 2018-01-30 18:34:07 +01:00
Mahrud Sayrafi
11a2d0070b ESLint is happy! 2018-01-30 18:31:30 +01:00
Tom James Holub
4495df0f42 improve armor header validation + tests | #598 2017-11-25 10:57:41 +08: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
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
Sanjana Rajan
a7702a74d3 support split checksum where body and checksum are on the same line 2017-06-27 16:41:53 -07:00
Kévin Bernard-Allies
342bc8fe01 Simplify code of CRC24 checksum in armor encoding 2017-04-06 13:12:45 +02:00
Sanjana Rajan
7d02154dc9 small fixes 2017-03-07 13:59:18 -08:00
Sanjana Rajan
57d07091e8 add support for detached signatures 2017-03-07 13:59:17 -08:00
Tankred Hase
8728db2b08 Finish refactoring src/**/*.js to use import & export 2016-02-05 15:23:11 +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
90a7457b71 Refactor most src files to strict mode, delint 2016-02-04 00:37:00 +07:00
Bart Butler
469a6be31a Rebase for upload to main openpgpjs repo 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
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
evilaliv3
9589fa0b52 Apply mixed code review thanks to webstorm inspector 2016-01-07 14:46:55 +01:00
Peter Breitling
07e4278a3a Optimized memory footprint for encrypting and decrypting 2015-06-10 21:12:55 +02:00
Andreas Fischer
b00ce34e90 Typo: Unknow -> Unknown 2014-11-17 12:31:04 +01:00
Tankred Hase
bbe174828f Upgrade license to LGPL version 3.0 or later. 2014-09-30 18:16:58 +02:00
Tankred Hase
de3ba18400 Implement content verification using detached signatures 2014-07-03 14:57:52 +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
ced145865e Accept armor header with trailing whitespace 2014-04-04 16:00:26 +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
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
Daniel
78adbdda42 Fixing typo as reported in issue #172 2014-02-11 14:56:48 -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
Tankred Hase
1cec81d576 merged devel into master 2014-01-03 18:48:27 +01: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
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
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
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
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
e965b6771b Cleanup canonical message handling for signatures 2013-12-05 12:21:23 -08:00
Robert Nelson
8110782633 Fix checksum failure debug message 2013-12-04 15:42:56 -08: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
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
Robert Nelson
f59fa54ecf Fix ascii dearmor and signature verification bugs 2013-11-29 19:29:57 -08:00
Robert Nelson
8b854a2ad1 Fix warnings from 'make minify' + other bugs 2013-11-29 17:08:17 -08: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
seancolyer
7cfa0ab705 Cleanup, creating armor enums 2013-10-18 21:18:38 -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
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
cryptoreddit
ad1983ac12 In Base64 encoding, if result ends in \n, remove it. (Fixes #79, #105) 2013-10-09 09:58:13 -07:00
seancolyer
7abaa43497 Initial gruntfile support. Forcing a standardized style. 2013-10-08 22:33:36 -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
Thomas Oberndörfer
5898cea4de DeArmor: remove whitespace of blank line 2013-06-25 16:25:10 +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
1e49e8ee23 Encryption of secret key packets is working. 2013-05-09 14:25:09 +02:00
Michal Kolodziej
c190784ffd Working on making the new packet infrastructure run. 2013-04-22 17:04:20 +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
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
13b52ebd51 Included CRC-24 Lookup table. Changes to keyring so importing return booleans, allow for password import of private key. 2012-02-20 22:22:36 -05:00
Sean Colyer
4640686683 Changes for key generation. Basic RSA key generation now seems fully functional within the openpgp.js, but experiencing an issue interfacing with gpg. 2012-01-29 16:58:11 -05:00
Alexander Willner
5a37c01350 updated documentation 2011-12-16 18:12:39 +01:00
Alexander Willner
1ea0f6d114 refactoring and implemented comment option #17 2011-12-16 18:04:17 +01:00
Alexander Willner
a0010422ed refactoring for #17 2011-12-16 17:49:58 +01:00
Carsten Wentzlow
f486f601af - unit test for the openpgp_crypto API
- less debug output on blowfish and twofish test vectors
- adjusted unit test table width in css
2011-12-12 18:11:17 +01:00
Carsten Wentzlow
d80e04d3f0 adding openpgp_encoding_eme_pkcs1_decode() function replacing the PKCS1 decoding in the encryptedsessionkey packet 2011-12-12 16:35:53 +01:00
Carsten Wentzlow
4f4d3b3a41 - removing executable flag from files 2011-12-09 18:29:47 +01:00
Carsten Wentzlow
81212f213f adding restructured GPG4Browsers code
- created a test suite available at test/index.html
- fixed a bug in MD5 calculation
2011-12-09 18:25:41 +01:00