View Javadoc

1   /********************************************************************************
2    *InternetCafe is a software solution that helps the management of Cybercafes 
3    * according with the ITALIAN DECREE LAW ON ANTI-TERROR MEASURES, 27 JULY 2005.
4    * Copyright (C) 2006  Guido Angelo Ingenito
5   
6    * This program is free software; you can redistribute it and/or
7    * modify it under the terms of the GNU General Public License
8    * as published by the Free Software Foundation; either version 2
9    * of the License, or (at your option) any later version.
10  
11   * This program is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU General Public License for more details.
15   * 
16   * You should have received a copy of the GNU General Public License
17   * along with this program; if not, write to the Free Software
18   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19   *******************************************************************************/
20  package base.jdbs.cryptography.asymmetric;
21  
22  import java.io.File;
23  
24  /***
25   * This interface offers facilities to sign and check the signature of files 
26   * using asymmetric cryptography.
27   * @author Guido Angelo Ingenito
28   */
29  public interface IAsymmetricCipher {
30  
31  	/***
32  	 * This method offers a facility to sign files with asymmetric cryptography.
33  	 * @param input The input file to be signed against an asymmetric private key.
34  	 * @param output The output file signed against the asymmetric private key.
35  	 * @param privateKey The private asymmetric key to use in the signing process.
36  	 */
37  	public void sign(File input, File output, base.jdbs.cryptography.asymmetric.PrivateKey privateKey);
38  	
39  	
40  	/***
41  	 * This method offers a facility to check the signature of a file with asymmetric cryptography.
42  	 * @param signedFile The input file whose signature must be checked against an asymmetric public key.
43  	 * @param dataFile The input data file whose signature must be checked against an asymmetric public key.
44  	 * @param publicKey The public key to use in the check signature process.
45  	 * @return True if the input file is valid signed file against the public key, false otherwise.
46  	 */
47  	public boolean checkSignature(File signedFile, File dataFile, base.jdbs.cryptography.asymmetric.PublicKey publicKey);
48  }