Fix OOM when detached signing large files

Fixes #432
This commit is contained in:
Paul Schaub 2024-03-17 17:11:28 +01:00
parent a9cec16dc6
commit 265f72d99f
Signed by: vanitasvitae
GPG Key ID: 62BEE9264BF17311
2 changed files with 19 additions and 3 deletions

View File

@ -4,7 +4,6 @@
package org.pgpainless.sop;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@ -98,10 +97,10 @@ public class DetachedSignImpl implements DetachedSign {
}
}
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
OutputStream sink = new NullOutputStream();
try {
EncryptionStream signingStream = PGPainless.encryptAndOrSign()
.onOutputStream(buffer)
.onOutputStream(sink)
.withOptions(ProducerOptions.sign(signingOptions)
.setAsciiArmor(armor));

View File

@ -0,0 +1,17 @@
// SPDX-FileCopyrightText: 2024 Paul Schaub <vanitasvitae@fsfe.org>
//
// SPDX-License-Identifier: Apache-2.0
package org.pgpainless.sop;
import java.io.OutputStream;
/**
* {@link OutputStream} that simply discards bytes written to it.
*/
public class NullOutputStream extends OutputStream {
@Override
public void write(int b) {
// NOP
}
}