/** * LICENCIA LGPL: * * Esta librería es Software Libre; Usted puede redistribuirlo y/o modificarlo * bajo los términos de la GNU Lesser General Public License (LGPL) * tal y como ha sido publicada por la Free Software Foundation; o * bien la versión 2.1 de la Licencia, o (a su elección) cualquier versión posterior. * * Esta librería se distribuye con la esperanza de que sea útil, pero SIN NINGUNA * GARANTÍA; tampoco las implícitas garantías de MERCANTILIDAD o ADECUACIÓN A UN * PROPÓSITO PARTICULAR. Consulte la GNU Lesser General Public License (LGPL) para más * detalles * * Usted debe recibir una copia de la GNU Lesser General Public License (LGPL) * junto con esta librería; si no es así, escriba a la Free Software Foundation Inc. * 51 Franklin Street, 5º Piso, Boston, MA 02110-1301, USA o consulte * <http://www.gnu.org/licenses/>. * * Copyright 2008 Ministerio de Industria, Turismo y Comercio * */ package es.mityc.firmaJava.libreria.xades; import java.math.BigInteger; import java.security.cert.X509Certificate; import java.security.spec.AlgorithmParameterSpec; /** * Implementacion de java.security.spec.AlgorithmParameterSpec para la firma en IE * * @author Ministerio de Industria, Turismo y Comercio * @version 0.9 beta */ public class ParametrosFirma implements AlgorithmParameterSpec { private BigInteger numeroSerial; private String emisorDN; private String sujetoDN; private X509Certificate firmaCert ; private static ParametrosFirma paramFirmaInt = null; /** * devuelve un objeto de java.security.spec.AlgorithmParameterSpec para la firma IE * @param numeroSerial Numero de serie del certificado firmante * @param emisorDN Emisor del certificado * @return un objeto de java.security.spec.AlgorithmParameterSpec para la firma IE */ public static AlgorithmParameterSpec getInstance(BigInteger numeroSerial, String emisorDN) { if (paramFirmaInt == null || ! paramFirmaInt.getSerialNumber().equals(numeroSerial) || ! paramFirmaInt.getSubjectDN().equals(emisorDN)){ return new ParametrosFirma(numeroSerial, emisorDN); }else{ return paramFirmaInt; } } /** * Crea una nueva instancia de ParametrosFirma * @param numeroSerial Número de serie del certificado firmante * @param emisorDN Emisor del certificado */ protected ParametrosFirma(BigInteger numeroSerial, String emisorDN) { this.numeroSerial = numeroSerial; this.emisorDN = emisorDN; } /** * Obtiene la propiedad numeroSerial * @return valor de la propiedad numeroSerial */ public BigInteger getSerialNumber() { return this.numeroSerial; } /** * Obtiene la propiedad emisorDN * @return valor de la propiedad emisorDN */ public String getIssuerDN() { return this.emisorDN; } /** * Asigna el DN del certificado * @param subjectDN DN del certificado */ public void setSubjectDN(String subjectDN) { this.sujetoDN = subjectDN; } /** * Obtiene la propiedad sujetoDN * @return Valor de la propiedad subjectDN */ public String getSubjectDN() { return sujetoDN; } /** * Obtiene el certificado con el que se firmará * @return Devuelve la firma del certificado */ public final X509Certificate getCertSign() { return firmaCert; } /** * Asigna el certificado con el que se firmará * @param firmaCert The certSign to set. */ public final void setCertSign(X509Certificate firmaCert) { this.firmaCert = firmaCert; } }