/* * Copyright 2011 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.gradle.plugins.signing.type; import org.gradle.plugins.signing.signatory.Signatory; import java.io.File; import java.io.InputStream; import java.io.OutputStream; /** * The type of signature. */ public interface SignatureType { /** * The file extension (without the leading dot) associated to this type of signature. */ String getExtension(); /** * Calculates the file where to store the signature of the given file to be signed. * * @param toSign The file to be signed * @return The file where to write the signature of the given file to be signed */ File fileFor(File toSign); /** * Combines the extension of the given file with the expected signature extension. * * @see #getExtension() * @param toSign The file to be signed * @return The combined file extension (without the leading dot) */ String combinedExtension(File toSign); /** * Signs the given file and returns the file where the signature has been written to. * * @param signatory The signatory * @param toSign The file to be signed * @return The file where the signature has been written to */ File sign(Signatory signatory, File toSign); /** * Signs the data from the given InputStream and stores the signature in the given OutputStream. * * @param signatory The signatory * @param toSign The source of the data to be signed * @param destination Where the signature will be written to */ void sign(Signatory signatory, InputStream toSign, OutputStream destination); }