mirror of
https://github.com/pgpainless/pgpainless.git
synced 2024-12-01 16:52:08 +01:00
Fix NPE when sop generate-key --with-key-password is used with multiple uids
Fixes #351
This commit is contained in:
parent
980daeca31
commit
3b2d0795f7
2 changed files with 4 additions and 1 deletions
|
@ -7,6 +7,8 @@ SPDX-License-Identifier: CC0-1.0
|
||||||
|
|
||||||
## 1.4.2-SNAPSHOT
|
## 1.4.2-SNAPSHOT
|
||||||
- Properly decrypt messages without MDC packets when `ConsumerOptions.setIgnoreMDCErrors(true)` is set
|
- Properly decrypt messages without MDC packets when `ConsumerOptions.setIgnoreMDCErrors(true)` is set
|
||||||
|
- Fix crash in `sop generate-key --with-key-password` when more than one user-id is given
|
||||||
|
|
||||||
|
|
||||||
## 1.4.1
|
## 1.4.1
|
||||||
- Add `UserId.parse()` method to parse user-ids into their components
|
- Add `UserId.parse()` method to parse user-ids into their components
|
||||||
|
|
|
@ -51,6 +51,7 @@ public class GenerateKeyImpl implements GenerateKey {
|
||||||
@Override
|
@Override
|
||||||
public Ready generate() throws SOPGPException.MissingArg, SOPGPException.UnsupportedAsymmetricAlgo {
|
public Ready generate() throws SOPGPException.MissingArg, SOPGPException.UnsupportedAsymmetricAlgo {
|
||||||
Iterator<String> userIdIterator = userIds.iterator();
|
Iterator<String> userIdIterator = userIds.iterator();
|
||||||
|
Passphrase passphraseCopy = new Passphrase(passphrase.getChars()); // generateKeyRing clears the original passphrase
|
||||||
PGPSecretKeyRing key;
|
PGPSecretKeyRing key;
|
||||||
try {
|
try {
|
||||||
String primaryUserId = userIdIterator.hasNext() ? userIdIterator.next() : null;
|
String primaryUserId = userIdIterator.hasNext() ? userIdIterator.next() : null;
|
||||||
|
@ -61,7 +62,7 @@ public class GenerateKeyImpl implements GenerateKey {
|
||||||
SecretKeyRingEditorInterface editor = PGPainless.modifyKeyRing(key);
|
SecretKeyRingEditorInterface editor = PGPainless.modifyKeyRing(key);
|
||||||
|
|
||||||
while (userIdIterator.hasNext()) {
|
while (userIdIterator.hasNext()) {
|
||||||
editor.addUserId(userIdIterator.next(), SecretKeyRingProtector.unprotectedKeys());
|
editor.addUserId(userIdIterator.next(), SecretKeyRingProtector.unlockAnyKeyWith(passphraseCopy));
|
||||||
}
|
}
|
||||||
|
|
||||||
key = editor.done();
|
key = editor.done();
|
||||||
|
|
Loading…
Reference in a new issue