Kotlin conversion: AbstractVerify

This commit is contained in:
Paul Schaub 2023-10-31 13:51:30 +01:00
parent e68d6df57f
commit 08ddc5d8a5
Signed by: vanitasvitae
GPG key ID: 62BEE9264BF17311
2 changed files with 57 additions and 68 deletions

View file

@ -1,68 +0,0 @@
// SPDX-FileCopyrightText: 2022 Paul Schaub <vanitasvitae@fsfe.org>
//
// SPDX-License-Identifier: Apache-2.0
package sop.operation;
import sop.exception.SOPGPException;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
/**
* Common API methods shared between verification of inline signatures ({@link InlineVerify})
* and verification of detached signatures ({@link DetachedVerify}).
*
* @param <T> Builder type ({@link DetachedVerify}, {@link InlineVerify})
*/
public interface AbstractVerify<T> {
/**
* Makes the SOP implementation consider signatures before this date invalid.
*
* @param timestamp timestamp
* @return builder instance
*/
T notBefore(Date timestamp)
throws SOPGPException.UnsupportedOption;
/**
* Makes the SOP implementation consider signatures after this date invalid.
*
* @param timestamp timestamp
* @return builder instance
*/
T notAfter(Date timestamp)
throws SOPGPException.UnsupportedOption;
/**
* Add one or more verification cert.
*
* @param cert input stream containing the encoded certs
* @return builder instance
*
* @throws sop.exception.SOPGPException.BadData if the input stream does not contain an OpenPGP certificate
* @throws IOException in case of an IO error
*/
T cert(InputStream cert)
throws SOPGPException.BadData,
IOException;
/**
* Add one or more verification cert.
*
* @param cert byte array containing the encoded certs
* @return builder instance
*
* @throws sop.exception.SOPGPException.BadData if the byte array does not contain an OpenPGP certificate
* @throws IOException in case of an IO error
*/
default T cert(byte[] cert)
throws SOPGPException.BadData,
IOException {
return cert(new ByteArrayInputStream(cert));
}
}

View file

@ -0,0 +1,57 @@
// SPDX-FileCopyrightText: 2023 Paul Schaub <vanitasvitae@fsfe.org>
//
// SPDX-License-Identifier: Apache-2.0
package sop.operation
import java.io.IOException
import java.io.InputStream
import java.util.*
import sop.exception.SOPGPException.BadData
import sop.exception.SOPGPException.UnsupportedOption
/**
* Common API methods shared between verification of inline signatures ([InlineVerify]) and
* verification of detached signatures ([DetachedVerify]).
*
* @param <T> Builder type ([DetachedVerify], [InlineVerify])
*/
interface AbstractVerify<T> {
/**
* Makes the SOP implementation consider signatures before this date invalid.
*
* @param timestamp timestamp
* @return builder instance
*/
@Throws(UnsupportedOption::class) fun notBefore(timestamp: Date): T
/**
* Makes the SOP implementation consider signatures after this date invalid.
*
* @param timestamp timestamp
* @return builder instance
*/
@Throws(UnsupportedOption::class) fun notAfter(timestamp: Date): T
/**
* Add one or more verification cert.
*
* @param cert input stream containing the encoded certs
* @return builder instance
* @throws BadData if the input stream does not contain an OpenPGP certificate
* @throws IOException in case of an IO error
*/
@Throws(BadData::class, IOException::class) fun cert(cert: InputStream): T
/**
* Add one or more verification cert.
*
* @param cert byte array containing the encoded certs
* @return builder instance
* @throws BadData if the byte array does not contain an OpenPGP certificate
* @throws IOException in case of an IO error
*/
@Throws(BadData::class, IOException::class)
fun cert(cert: ByteArray): T = cert(cert.inputStream())
}