package at.gv.egiz.eaaf.modules.sigverify.moasig.impl.data; import java.io.Serializable; import java.security.cert.CertificateException; import java.util.Date; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import at.gv.egiz.eaaf.modules.sigverify.moasig.api.data.IGenericSignatureVerificationResponse; import at.gv.egiz.eaaf.modules.sigverify.moasig.exceptions.MoaSigServiceException; import at.gv.egiz.eaaf.modules.sigverify.moasig.exceptions.MoaSigServiceParserException; import iaik.x509.X509Certificate; public class GenericSignatureVerificationResponse implements IGenericSignatureVerificationResponse, Serializable { private static final long serialVersionUID = -7751001050689401118L; private static final Logger log = LoggerFactory.getLogger(GenericSignatureVerificationResponse.class); /** The signing time. */ private Date signingDateTime; /** The signatureCheckCode to be stored. */ private int signatureCheckCode; /** The certificateCheckCode to be stored. */ private int certificateCheckCode; /** The publicAuthority to be stored. */ private boolean publicAuthority; /** The publicAuthorityCode to be stored. */ private String publicAuthorityCode; /** The qualifiedCertificate to be stored. */ private boolean qualifiedCertificate; private byte[] x509CertificateEncoded; @Override public Date getSigningDateTime() { if (this.signingDateTime != null) { return new Date(this.signingDateTime.getTime()); } return null; } @Override public int getSignatureCheckCode() { return this.signatureCheckCode; } @Override public int getCertificateCheckCode() { return this.certificateCheckCode; } @Override public boolean isQualifiedCertificate() { return this.qualifiedCertificate; } @Override public X509Certificate getX509Certificate() throws MoaSigServiceException { if (x509CertificateEncoded != null) { try { return new X509Certificate(x509CertificateEncoded); } catch (final CertificateException e) { log.error("Can NOT parse X509 certifcate in " + GenericSignatureVerificationResponse.class.getName(), e); throw new MoaSigServiceParserException("service.moasig.01", null, e); } } return null; } @Override public byte[] getX509CertificateEncoded() { if (this.x509CertificateEncoded != null) { return this.x509CertificateEncoded.clone(); } return null; } @Override public boolean isPublicAuthority() { return this.publicAuthority; } @Override public String getPublicAuthorityCode() { return this.publicAuthorityCode; } /** * Set signature creation timestramp. * * @param signingDateTime timestamp */ public void setSigningDateTime(final Date signingDateTime) { if (signingDateTime != null) { this.signingDateTime = new Date(signingDateTime.getTime()); } } public void setSignatureCheckCode(final int signatureCheckCode) { this.signatureCheckCode = signatureCheckCode; } public void setCertificateCheckCode(final int certificateCheckCode) { this.certificateCheckCode = certificateCheckCode; } public void setPublicAuthority(final boolean publicAuthority) { this.publicAuthority = publicAuthority; } public void setPublicAuthorityCode(final String publicAuthorityCode) { this.publicAuthorityCode = publicAuthorityCode; } public void setQualifiedCertificate(final boolean qualifiedCertificate) { this.qualifiedCertificate = qualifiedCertificate; } /** * Set encoded signer certificate. * * @param x509CertificateEncoded signer cerificate */ public void setX509CertificateEncoded(final byte[] x509CertificateEncoded) { if (x509CertificateEncoded != null) { this.x509CertificateEncoded = x509CertificateEncoded.clone(); } } }