/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * Copyright (c) 2013, MPL CodeInside http://codeinside.ru */ package ru.codeinside.gws.api; import java.security.cert.X509Certificate; /** * ЭЦП. */ final public class Signature { /** * Сертификат. */ final public X509Certificate certificate; /** * Подписанное содержимое. */ final public byte[] content; /** * Подпись. */ final public byte[] sign; /** * Соответсвует ли содержимое подписи. */ final public boolean valid; /** * Хеш данных по "http://www.w3.org/2001/04/xmldsig-more#gostr3411". */ private byte[] digest; public Signature(final X509Certificate certificate, final byte[] content, final byte[] sign, final boolean valid) { this.certificate = certificate; this.content = content; this.sign = sign; this.valid = valid; } public Signature(final X509Certificate certificate, final byte[] content, final byte[] sign, final byte[] digest, final boolean valid) { this(certificate, content, sign, valid); this.digest = digest; } public Signature toInvalid() { return new Signature(this.certificate, this.content, this.sign, false); } public byte[] getDigest() { return digest; } @Override public String toString() { return "Signature{" + "certificate=" + certificate + ", content=" + content.length + ", sign=" + sign + ", valid=" + valid + '}'; } }