Add some missing javadoc

This commit is contained in:
Paul Schaub 2023-01-16 19:38:52 +01:00
parent 6c0bb6c627
commit b58861635d
Signed by: vanitasvitae
GPG Key ID: 62BEE9264BF17311
17 changed files with 84 additions and 0 deletions

View File

@ -258,6 +258,18 @@ task javadocAll(type: Javadoc) {
] as String[] ] as String[]
} }
if (JavaVersion.current().isJava8Compatible()) {
tasks.withType(Javadoc) {
// The '-quiet' as second argument is actually a hack,
// since the one paramater addStringOption doesn't seem to
// work, we extra add '-quiet', which is added anyway by
// gradle. See https://github.com/gradle/gradle/issues/2354
// See JDK-8200363 (https://bugs.openjdk.java.net/browse/JDK-8200363)
// for information about the -Xwerror option.
options.addStringOption('Xwerror', '-quiet')
}
}
/** /**
* Fetch sha256 checksums of artifacts published to maven central. * Fetch sha256 checksums of artifacts published to maven central.
* *

View File

@ -18,6 +18,10 @@ public class PGPainlessCLI {
SopCLI.setSopInstance(new SOPImpl()); SopCLI.setSopInstance(new SOPImpl());
} }
/**
* Main method of the CLI application.
* @param args arguments
*/
public static void main(String[] args) { public static void main(String[] args) {
int result = execute(args); int result = execute(args);
if (result != 0) { if (result != 0) {
@ -25,6 +29,12 @@ public class PGPainlessCLI {
} }
} }
/**
* Execute the given command and return the exit code of the program.
*
* @param args command string array (e.g. ["pgpainless-cli", "generate-key", "Alice"])
* @return exit code
*/
public static int execute(String... args) { public static int execute(String... args) {
return SopCLI.execute(args); return SopCLI.execute(args);
} }

View File

@ -18,6 +18,9 @@ import sop.enums.ArmorLabel;
import sop.exception.SOPGPException; import sop.exception.SOPGPException;
import sop.operation.Armor; import sop.operation.Armor;
/**
* Implementation of the <pre>armor</pre> operation using PGPainless.
*/
public class ArmorImpl implements Armor { public class ArmorImpl implements Armor {
@Override @Override

View File

@ -15,6 +15,9 @@ import sop.Ready;
import sop.exception.SOPGPException; import sop.exception.SOPGPException;
import sop.operation.Dearmor; import sop.operation.Dearmor;
/**
* Implementation of the <pre>dearmor</pre> operation using PGPainless.
*/
public class DearmorImpl implements Dearmor { public class DearmorImpl implements Dearmor {
@Override @Override

View File

@ -34,6 +34,9 @@ import sop.Verification;
import sop.exception.SOPGPException; import sop.exception.SOPGPException;
import sop.operation.Decrypt; import sop.operation.Decrypt;
/**
* Implementation of the <pre>decrypt</pre> operation using PGPainless.
*/
public class DecryptImpl implements Decrypt { public class DecryptImpl implements Decrypt {
private final ConsumerOptions consumerOptions = ConsumerOptions.get(); private final ConsumerOptions consumerOptions = ConsumerOptions.get();

View File

@ -36,6 +36,9 @@ import sop.enums.SignAs;
import sop.exception.SOPGPException; import sop.exception.SOPGPException;
import sop.operation.DetachedSign; import sop.operation.DetachedSign;
/**
* Implementation of the <pre>sign</pre> operation using PGPainless.
*/
public class DetachedSignImpl implements DetachedSign { public class DetachedSignImpl implements DetachedSign {
private boolean armor = true; private boolean armor = true;

View File

@ -23,6 +23,9 @@ import sop.Verification;
import sop.exception.SOPGPException; import sop.exception.SOPGPException;
import sop.operation.DetachedVerify; import sop.operation.DetachedVerify;
/**
* Implementation of the <pre>verify</pre> operation using PGPainless.
*/
public class DetachedVerifyImpl implements DetachedVerify { public class DetachedVerifyImpl implements DetachedVerify {
private final ConsumerOptions options = ConsumerOptions.get(); private final ConsumerOptions options = ConsumerOptions.get();

View File

@ -34,6 +34,9 @@ import sop.exception.SOPGPException;
import sop.operation.Encrypt; import sop.operation.Encrypt;
import sop.util.ProxyOutputStream; import sop.util.ProxyOutputStream;
/**
* Implementation of the <pre>encrypt</pre> operation using PGPainless.
*/
public class EncryptImpl implements Encrypt { public class EncryptImpl implements Encrypt {
EncryptionOptions encryptionOptions = EncryptionOptions.get(); EncryptionOptions encryptionOptions = EncryptionOptions.get();

View File

@ -19,6 +19,9 @@ import sop.Ready;
import sop.exception.SOPGPException; import sop.exception.SOPGPException;
import sop.operation.ExtractCert; import sop.operation.ExtractCert;
/**
* Implementation of the <pre>extract-cert</pre> operation using PGPainless.
*/
public class ExtractCertImpl implements ExtractCert { public class ExtractCertImpl implements ExtractCert {
private boolean armor = true; private boolean armor = true;

View File

@ -24,6 +24,9 @@ import sop.Ready;
import sop.exception.SOPGPException; import sop.exception.SOPGPException;
import sop.operation.GenerateKey; import sop.operation.GenerateKey;
/**
* Implementation of the <pre>generate-key</pre> operation using PGPainless.
*/
public class GenerateKeyImpl implements GenerateKey { public class GenerateKeyImpl implements GenerateKey {
private boolean armor = true; private boolean armor = true;

View File

@ -30,6 +30,9 @@ import sop.Signatures;
import sop.exception.SOPGPException; import sop.exception.SOPGPException;
import sop.operation.InlineDetach; import sop.operation.InlineDetach;
/**
* Implementation of the <pre>inline-detach</pre> operation using PGPainless.
*/
public class InlineDetachImpl implements InlineDetach { public class InlineDetachImpl implements InlineDetach {
private boolean armor = true; private boolean armor = true;

View File

@ -29,6 +29,9 @@ import sop.enums.InlineSignAs;
import sop.exception.SOPGPException; import sop.exception.SOPGPException;
import sop.operation.InlineSign; import sop.operation.InlineSign;
/**
* Implementation of the <pre>inline-sign</pre> operation using PGPainless.
*/
public class InlineSignImpl implements InlineSign { public class InlineSignImpl implements InlineSign {
private boolean armor = true; private boolean armor = true;

View File

@ -26,6 +26,9 @@ import sop.Verification;
import sop.exception.SOPGPException; import sop.exception.SOPGPException;
import sop.operation.InlineVerify; import sop.operation.InlineVerify;
/**
* Implementation of the <pre>inline-verify</pre> operation using PGPainless.
*/
public class InlineVerifyImpl implements InlineVerify { public class InlineVerifyImpl implements InlineVerify {
private final ConsumerOptions options = ConsumerOptions.get(); private final ConsumerOptions options = ConsumerOptions.get();

View File

@ -13,6 +13,9 @@ import sop.exception.SOPGPException;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
/**
* Reader for OpenPGP keys and certificates with error matching according to the SOP spec.
*/
class KeyReader { class KeyReader {
static PGPSecretKeyRingCollection readSecretKeys(InputStream keyInputStream, boolean requireContent) static PGPSecretKeyRingCollection readSecretKeys(InputStream keyInputStream, boolean requireContent)

View File

@ -20,12 +20,21 @@ import org.pgpainless.key.protection.SecretKeyRingProtector;
import org.pgpainless.key.protection.UnlockSecretKey; import org.pgpainless.key.protection.UnlockSecretKey;
import org.pgpainless.util.Passphrase; import org.pgpainless.util.Passphrase;
/**
* Implementation of the {@link SecretKeyRingProtector} which can be handed passphrases and keys separately,
* and which then matches up passphrases and keys when needed.
*/
public class MatchMakingSecretKeyRingProtector implements SecretKeyRingProtector { public class MatchMakingSecretKeyRingProtector implements SecretKeyRingProtector {
private final Set<Passphrase> passphrases = new HashSet<>(); private final Set<Passphrase> passphrases = new HashSet<>();
private final Set<PGPSecretKeyRing> keys = new HashSet<>(); private final Set<PGPSecretKeyRing> keys = new HashSet<>();
private final CachingSecretKeyRingProtector protector = new CachingSecretKeyRingProtector(); private final CachingSecretKeyRingProtector protector = new CachingSecretKeyRingProtector();
/**
* Add a single passphrase to the protector.
*
* @param passphrase passphrase
*/
public void addPassphrase(Passphrase passphrase) { public void addPassphrase(Passphrase passphrase) {
if (passphrase.isEmpty()) { if (passphrase.isEmpty()) {
return; return;
@ -46,6 +55,11 @@ public class MatchMakingSecretKeyRingProtector implements SecretKeyRingProtector
} }
} }
/**
* Add a single {@link PGPSecretKeyRing} to the protector.
*
* @param key secret keys
*/
public void addSecretKey(PGPSecretKeyRing key) { public void addSecretKey(PGPSecretKeyRing key) {
if (!keys.add(key)) { if (!keys.add(key)) {
return; return;
@ -89,6 +103,9 @@ public class MatchMakingSecretKeyRingProtector implements SecretKeyRingProtector
return protector.getEncryptor(keyId); return protector.getEncryptor(keyId);
} }
/**
* Clear all known passphrases from the protector.
*/
public void clear() { public void clear() {
for (Passphrase passphrase : passphrases) { for (Passphrase passphrase : passphrases) {
passphrase.clear(); passphrase.clear();

View File

@ -19,6 +19,12 @@ import sop.operation.InlineSign;
import sop.operation.InlineVerify; import sop.operation.InlineVerify;
import sop.operation.Version; import sop.operation.Version;
/**
* Implementation of the <pre>sop</pre> API using PGPainless.
* <pre> {@code
* SOP sop = new SOPImpl();
* }</pre>
*/
public class SOPImpl implements SOP { public class SOPImpl implements SOP {
static { static {

View File

@ -12,6 +12,9 @@ import java.util.Properties;
import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.bouncycastle.jce.provider.BouncyCastleProvider;
import sop.operation.Version; import sop.operation.Version;
/**
* Implementation of the <pre>version</pre> operation using PGPainless.
*/
public class VersionImpl implements Version { public class VersionImpl implements Version {
// draft version // draft version