Daniel Huigens
2131fb0978
Fix error message for legacy encrypted private keys
2020-02-25 15:07:43 +01:00
Daniel Huigens
fc0052e35a
Implement streaming non-AES encryption and decryption
2020-02-02 16:51:56 +01:00
Daniel Huigens
26d107b856
Zero out private key parameters in clearPrivateParams
2020-01-24 17:57:39 +01:00
Daniel Huigens
889e0c4930
Allow calling clearPrivateParams on decrypted keys
...
Calling it on unencrypted keys was already allowed, so this safety check
didn't do much.
2020-01-24 17:57:39 +01:00
Daniel Huigens
fd6d7b6088
Remove support for legacy encrypted private keys ( #1029 )
...
Both those with a 2-byte hash (instead of SHA1 or an AEAD authentication
tag) and those without an S2K specifier (i.e., using MD5 for S2K) -
support for the latter was already broken.
Vulnerabilities can arise not just from generating keys like this, but
from using them as well (if an attacker can tamper with them), hence why
we're removing support.
2020-01-07 18:17:00 +01:00
Ilya Chesnokov
6e7f399eb3
Use Web Crypto & Node crypto for RSA signing and verifying ( #999 )
...
Also, when generating RSA keys in JS, generate them with p < q, as per
the spec.
Also, when generating RSA keys using Web Crypto or Node crypto, swap the
generated p and q around, so that will satisfy p < q in most browsers
(but not old Microsoft Edge, 50% of the time) and so that we can use the
generated u coefficient (p^-1 mod q in OpenPGP, q^-1 mod p in RFC3447).
Then, when signing and verifying, swap p and q again, so that the key
hopefully satisfies Safari's requirement that p > q, and so that we can
keep using u again.
2019-11-18 14:59:01 +01:00
Daniel Huigens
e20d727d76
Always encrypt keys using AES
...
Even if they were previously encrypted using another algorithm.
2019-11-18 14:13:48 +01:00
Daniel Huigens
18474bdfb6
Fix decrypting newly generated key object when using the Worker
2019-09-11 18:11:16 +02:00
Ilya Chesnokov
5d9629d6a3
Style fixes; add spaces around all infix operators, remove new Buffer ( #954 )
...
* Add "space-infix-ops": "error" rule
* Remove deprecated Buffer constructor
* Resolve new-cap eslint rule
* @twiss: Clarify code that selects curve and algorithm
2019-08-30 12:27:30 +02:00
Daniel Huigens
a7cc71e35e
Throw when trying to encrypt a key that's already encrypted ( #950 )
2019-08-19 13:27:52 +02:00
Daniel Huigens
c8729a0295
Fix serializing GNU stripped-keys
2019-08-12 17:46:37 +02:00
Daniel Huigens
f629ddcb31
Fix reading and writing unencrypted V5 secret key packets
2019-08-12 17:46:37 +02:00
Daniel Huigens
5a17648922
Fix error message when reformatting a GNU stripped-key with a passphrase
2019-06-06 16:08:22 +02:00
Daniel Huigens
bc756d0ed4
Make key.isDecrypted() and key.encrypt() consistent for gnu-dummy keys
2019-05-03 12:39:28 +02:00
Daniel Huigens
10e10effb6
Support GNU export-secret-subkeys extension
2019-05-03 12:39:28 +02:00
Daniel Huigens
3f1734ae7a
Move CFB optimizations into cfb.js
...
So that uses of CFB other than sym_encrypted_integrity_protected.js
can benefit from them.
Also, implement CFB resync mode in terms of normal CFB rather than
separately (and duplicated).
2019-01-02 15:12:53 +01:00
Sanjana Rajan
836ad2805a
Revert "Web Crypto CFB encryption"
2018-12-23 18:42:24 +01:00
Daniel Huigens
668264aa9a
Move CFB optimizations into cfb.js
...
So that uses of CFB other than sym_encrypted_integrity_protected.js
can benefit from them.
Also, implement CFB resync mode in terms of normal CFB rather than
separately (and duplicated).
2018-12-20 17:50:01 -05:00
Daniel Huigens
a250ee9f91
Clean up checksum calculation
2018-11-01 14:47:22 +01:00
Daniel Huigens
abce79b509
Use Web Crypto for hashing
2018-11-01 14:11:22 +01:00
Daniel Huigens
91b7165b78
Add key/subKey.getKeyId, getFingerprint, getAlgorithmInfo, getCreationTime, isDecrypted
2018-07-19 15:03:25 +02:00
Daniel Huigens
95b9e5188a
Remove some ESLint silencers
2018-05-01 17:36:15 +02:00
Daniel Huigens
a7fce27424
Safari 8 compatibility
2018-04-30 16:58:37 +02:00
Daniel Huigens
51d7860622
Native CMAC
2018-04-27 14:06:19 +02:00
Daniel Huigens
2f849063f9
Allow reusing EAX/OCB instances with the same key
...
This is useful for chunked encryption in draft04
2018-04-27 14:06:19 +02:00
Daniel Huigens
c2f898279b
Implement version 5 Secret-Key Packet Format
2018-04-27 14:06:14 +02:00
Sanjana Rajan
eb96d44298
add date parameter to generateKey function
2018-03-19 18:55:15 -07:00
Mahrud Sayrafi
96c9cd0d73
Fixes dead links in the documentation
2018-03-13 00:13:04 -07:00
Mahrud Sayrafi
4ded3f9d58
Documentation improvements in src/packet
2018-03-09 08:01:06 -08:00
Mahrud Sayrafi
a5e7562066
Many documentation improvements; more to come
2018-03-08 19:27:57 -08:00
Mahrud Sayrafi
08da24de27
documentation fixes
2018-03-08 10:55:58 -08:00
Mahrud Sayrafi
73a240df6c
Simplifies (Key|User|SubKey).isRevoked, API changes in key.js
...
For User s/revocationCertifications/revocationSignatures/g
For Key/SubKey s/revocationSignature/revocationSignatures/g is now an array.
2018-03-08 10:01:54 +01:00
Bart Butler
1cd9018346
some cleanup
2018-03-06 10:04:33 -08:00
Bart Butler
f57888fe55
change all calls of getRandomBytes and getRandomBN to be async
2018-03-05 16:31:56 -08:00
Mahrud Sayrafi
9e1236c04c
Modernizes util.js
2018-02-28 15:49:41 -08:00
Mahrud Sayrafi
9275119dbc
Enables JSDoc Markdown Plugin
2018-02-28 14:13:44 -08:00
Mahrud Sayrafi
605021af3b
Various quickfixes and cleanups
2018-02-22 00:37:42 -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
d851398b0c
Merge branch 'master' into http-to-https
2018-02-08 10:56:46 -08:00
Mahrud Sayrafi
1383107202
Fixed and unmuted a few eslint errors, ~10 remain
2018-02-07 04:23:16 -08:00
Daniel Kahn Gillmor
4da28fcc29
move from http to https where possible.
...
There are dozens of links in the OpenPGP.js codebase that are http but
could be replaced with https links. I've converted as many of them as
i could find.
2018-02-01 09:58:06 -05:00
Sanjana Rajan
a173a63b16
doc fixes
2018-01-30 18:36:26 +01:00
Sanjana Rajan
3ce6309788
cleanup
2018-01-30 18:36:26 +01:00
Mahrud Sayrafi
11a2d0070b
ESLint is happy!
2018-01-30 18:31:30 +01:00
Sanjana Rajan
311d288bb7
clone processing
2018-01-30 18:30:16 +01:00
Sanjana Rajan
f8bfde7447
comments, docs
2018-01-30 18:30:16 +01:00
Sanjana Rajan
b40408d42f
standardize packet reading code, make pkcs5 function names same as pkcs1
2018-01-30 18:30:16 +01:00
Sanjana Rajan
cdc7004b96
refactor mpi, generalize mpi to params to account for non-mpi algorithm-specific data
2018-01-30 18:30:15 +01:00
Sanjana Rajan
fade832619
remove material parameter for now
2018-01-30 18:30:15 +01:00