All Downloads are FREE. Search and download functionalities are using the official Maven repository.

name.neuhalfen.projects.crypto.bouncycastle.openpgp.reencryption.ZipEntityStrategy Maven / Gradle / Ivy

The newest version!
package name.neuhalfen.projects.crypto.bouncycastle.openpgp.reencryption;

import java.io.IOException;
import java.io.OutputStream;
import javax.annotation.Nullable;

/**
 * Strategy for handling the content of an encrypted ZIP file. 

The data flow is:

[encrypted * data from e.g test.zip.gpg] * for each file/dir -- [name sanitation] -- * ZipEntityStrategy::handleDirectory -- e.g. create directory OR -- output := * ZipEntityStrategy::createOutputStream -- e.g. create a FileOutputStream -- * writeEncryptedFileContent(output) */ public interface ZipEntityStrategy { /** * Sanitize the names of entities in ZIP files. These can contain absolute paths, and path * traversals. * * @param nameFromZip name of the file/directory as seen in the ZIP * * @return rewritten name */ String rewriteName(String nameFromZip); /** * Handle a directory. The names are guaranteed to have be sanitized by {@link * #rewriteName(String)} * * @param sanitizedDirectoryName Name of the directory as returned by {@link * #rewriteName(String)} * * @throws IOException Well, can happen */ void handleDirectory(String sanitizedDirectoryName) throws IOException; /** * Create an outputstream that will receive the (re-)encrypted content of one file in the ZIP * * @param sanitizedFileName Name of the file as returned by {@link #rewriteName(String)} * * @return data sink. Null: Ignore the file * * @throws IOException Well, can happen */ @Nullable OutputStream createOutputStream(String sanitizedFileName) throws IOException; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy