Class SigningCertificate
java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.xades.attributes.signed.SigningCertificate
- All Implemented Interfaces:
SignatureAttribute<Element>,SigningCertificateInterface,Cloneable,CertSelector,org.bouncycastle.util.Selector<Certificate>
public class SigningCertificate extends Object implements SigningCertificateInterface
O atributo SigningCertificate é designado para previnir o ataque de
substituição, e para permitir um conjunto restrito de certificados de
autorização a serem usados na verificação da assinatura. Esta versão
representa uma referência do certificado do signatário utilizando o algoritmo
de hash SHA1.
SigningCertificate implementa SigningCertificateInterface, que por sua vez
extende as interfaces SignatureAttribute, que representa um atributo da
assinatura, e CertSelector, que é utilizado para selecionar certificados de
um CertStore utilizando critérios.
O SigningCertificate pode ser composto por um identificador e
obrigatoriamente pelo hash do certificado dos signatário, sendo que o hash é
utilizado como critério no CertSelector para encontrar o certificado no
CertStore.
Esquema do atributo SigningCertificate retirado do ETSI TS 101 903:
<xsd:element name="SigningCertificate" type="CertIDListType"/><br>
<xsd:complexType name="CertIDListType"><br>
<xsd:sequence><br>
<xsd:element name="Cert" type="CertIDType"<br>
maxOccurs="unbounded"/><br>
</xsd:sequence><br>
</xsd:complexType><br>
<xsd:complexType name="CertIDType"><br>
<xsd:complexType name="CertIDType"><br>
<xsd:sequence><br>
<xsd:element name="CertDigest" type="DigestAlgAndValueType"/><br>
<xsd:element name="IssuerSerial" type="ds:X509IssuerSerialType"/><br>
</xsd:sequence><br>
<xsd:attribute name="URI" type="xsd:anyURI" use="optional"/><br>
</xsd:complexType><br>
<xsd:complexType name="DigestAlgAndValueType"><br>
<xsd:sequence><br>
<xsd:element ref="ds:DigestMethod"/><br>
<xsd:element ref="ds:DigestValue"/><br>
</xsd:sequence><br>
</xsd:complexType><br>
-
Field Summary
Fields Modifier and Type Field Description static StringIDENTIFIERprotected SignatureVerifiersignatureVerifierObjeto de verificadorprotected ElementsigningCertificateElementElemento XML do atributo -
Constructor Summary
Constructors Constructor Description SigningCertificate(AbstractVerifier signatureVerifier, Integer index)Deve-se utilizar este construtor no momento de validação do atributo.SigningCertificate(List<Certificate> certs, String digestAlgorithm)Cria o atributo id-aa-signingCertificate a partir de uma lista de certificados.SigningCertificate(List<Certificate> certs, org.bouncycastle.asn1.ASN1ObjectIdentifier digestIdentifier)Cria o atributo id-aa-signingCertificate a partir de uma lista de certificados.SigningCertificate(List<Certificate> certs, org.bouncycastle.asn1.x509.AlgorithmIdentifier digestAlgorithm)Cria o atributo id-aa-signingCertificate a partir de uma lista de certificados.SigningCertificate(Element genericEncoding)Constrói um objetoSigningCertificate -
Method Summary
Modifier and Type Method Description CertSelectorclone()Faz uma cópia deste objetoElementgetEncoded()Retorna o atributo codificadoStringgetIdentifier()Retorna o identificador do atributoElementgetSigningCertificateElement()Obtém todos os certificados que foram guardados no atributo SigningCertificate da assinatura.AttributeValueReportgetValue()booleanisSigned()Informa se o atributo é assinado.booleanisUnique()Verifica se o atributo deve ter apenas uma instância na assinaturabooleanmatch(Certificate certificate)Verifica se o certificado dado é o mesmo que está no atributovoidvalidate()Valida o atributo de acordo com suas regras específicas
-
Field Details
-
IDENTIFIER
- See Also:
- Constant Field Values
-
signingCertificateElement
Elemento XML do atributo -
signatureVerifier
Objeto de verificador
-
-
Constructor Details
-
SigningCertificate
public SigningCertificate(AbstractVerifier signatureVerifier, Integer index) throws SignatureAttributeExceptionDeve-se utilizar este construtor no momento de validação do atributo. Este método decodifica todos os certificados que foram adicionados no atributo SigningCertificate. Ou seja, ele funciona para os casos SignerOnly e FullPath.- Parameters:
signatureVerifier- Usado para criar e verificar o atributoindex- Este valor deve ser 0- Throws:
SignatureAttributeException- Caso ocorra algum erro relativo aos atributos da assinatura.
-
SigningCertificate
Constrói um objetoSigningCertificate- Parameters:
genericEncoding- O atributo codificado
-
SigningCertificate
public SigningCertificate(List<Certificate> certs, org.bouncycastle.asn1.x509.AlgorithmIdentifier digestAlgorithm) throws SignatureAttributeExceptionCria o atributo id-aa-signingCertificate a partir de uma lista de certificados. Este método decodifica todos os certificados que foram adicionados noSigningCertificate. Ou seja, ele funciona para os casos SignerOnly e FullPath.- Parameters:
certs- Lista de certificados que serão guardados no atributo signing certificate da assinaturadigestAlgorithm- O algoritmo de cálculo de hash- Throws:
SignatureAttributeException- Caso ocorra algum erro relativo aos atributos da assinatura.
-
SigningCertificate
public SigningCertificate(List<Certificate> certs, org.bouncycastle.asn1.ASN1ObjectIdentifier digestIdentifier) throws SignatureAttributeExceptionCria o atributo id-aa-signingCertificate a partir de uma lista de certificados. Este método decodifica todos os certificados que foram adicionados noSigningCertificate. Ou seja, ele funciona para os casos SignerOnly e FullPath.- Parameters:
certs- Lista de certificados que serão guardados no atributo signing certificate da assinaturadigestIdentifier- O algoritmo de cálculo de hash- Throws:
SignatureAttributeException- Caso ocorra algum erro relativo aos atributos da assinatura.
-
SigningCertificate
public SigningCertificate(List<Certificate> certs, String digestAlgorithm) throws SignatureAttributeExceptionCria o atributo id-aa-signingCertificate a partir de uma lista de certificados. Este método decodifica todos os certificados que foram adicionados noSigningCertificate. Ou seja, ele funciona para os casos SignerOnly e FullPath.- Parameters:
certs- Lista de certificados que serão guardados no atributo signing certificate da assinaturadigestAlgorithm- O algoritmo de cálculo de hash- Throws:
SignatureAttributeException- Caso ocorra algum erro relativo aos atributos da assinatura.
-
-
Method Details
-
getIdentifier
Retorna o identificador do atributo- Specified by:
getIdentifierin interfaceSignatureAttribute<Element>- Returns:
- O identificador do atributo
-
validate
Valida o atributo de acordo com suas regras específicas- Specified by:
validatein interfaceSignatureAttribute<Element>- Throws:
SignatureAttributeException
-
getEncoded
Retorna o atributo codificado- Specified by:
getEncodedin interfaceSignatureAttribute<Element>- Returns:
- O atributo em formato de nodo XML
- Throws:
SignatureAttributeException
-
isSigned
public boolean isSigned()Informa se o atributo é assinado.- Specified by:
isSignedin interfaceSignatureAttribute<Element>- Returns:
- Indica se o atributo é assinado
-
match
Verifica se o certificado dado é o mesmo que está no atributo- Specified by:
matchin interfaceCertSelector- Specified by:
matchin interfaceorg.bouncycastle.util.Selector<Certificate>- Parameters:
certificate- O certificado a ser comparado- Returns:
- Indica se o certificado dado é o mesmo que está no atributo
-
clone
Faz uma cópia deste objeto- Specified by:
clonein interfaceCertSelector- Specified by:
clonein interfaceorg.bouncycastle.util.Selector<Certificate>- Overrides:
clonein classObject- Returns:
- Uma cópia do objeto
-
getSigningCertificateElement
Obtém todos os certificados que foram guardados no atributo SigningCertificate da assinatura.- Returns:
- Certificados que foram guardados no atributo signing certificate da assinatura.
-
isUnique
public boolean isUnique()Verifica se o atributo deve ter apenas uma instância na assinatura- Specified by:
isUniquein interfaceSignatureAttribute<Element>- Returns:
- Indica se o atributo deve ter apenas uma instância na assinatura
-
getValue
- Specified by:
getValuein interfaceSignatureAttribute<Element>
-