Class TimeStampToken
java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.cades.attributes.TimeStamp<org.bouncycastle.asn1.cms.Attribute>
br.ufsc.labsec.signature.conformanceVerifier.cades.attributes.unsigned.TimeStampToken
- All Implemented Interfaces:
SignatureAttribute<org.bouncycastle.asn1.cms.Attribute>
,Comparable<TimeStamp<org.bouncycastle.asn1.cms.Attribute>>
- Direct Known Subclasses:
IdAaEtsArchiveTimeStampV2
,IdAaEtsArchiveTimestampV3
,IdAaEtsEscTimeStamp
,IdAaSignatureTimeStampToken
public abstract class TimeStampToken extends TimeStamp<org.bouncycastle.asn1.cms.Attribute>
Representa o carimbo do tempo da assinatura.
Oid e esquema do atributo id-aa-signatureTimeStampToken retirado do documento ETSI TS 101 733 V1.8.1:
id-aa-signatureTimeStampToken OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) id-aa(2) 14} SignatureTimeStampToken ::= TimeStampToken
-
Field Summary
Fields Modifier and Type Field Description static String
FAILURE_TO_VALIDATE_TIMESTAMP
static String
INVALID_ASYMMETRIC_CIPHER_ERROR
static String
INVALID_TIMESTAMP_ERROR
Mensagem de erro.protected AbstractVerifier
signatureVerifier
Objeto de verificadorFields inherited from class br.ufsc.labsec.signature.conformanceVerifier.cades.attributes.TimeStamp
contentInfo
-
Constructor Summary
Constructors Constructor Description TimeStampToken(AbstractVerifier signatureVerifier, Integer index)
Deve-se utilizar este construtor no momento de validação do atributo.TimeStampToken(org.bouncycastle.asn1.cms.Attribute genericEncoding)
Constrói um objetoIdAaSignatureTimeStampToken
TimeStampToken(org.bouncycastle.asn1.cms.ContentInfo contentInfo)
Constrói um objetoIdAaSignatureTimeStampToken
a partir de umContentInfo
-
Method Summary
Modifier and Type Method Description protected org.bouncycastle.cms.SignerInformationVerifier
createSignerInformationVerifier(X509Certificate certificate)
Obtém umSignerInformationVerifier
.org.bouncycastle.asn1.DERSequence
getArchiveTimeStampContentInfo()
Retorna o conteúdo do carimbo em formato ASN.1protected byte[]
getAttributeHash(String hashAlgorithmId)
Calcula o hash do atributoprotected abstract byte[]
getAttributeHash(String hashAlgorithmId, boolean hashWithoutTag)
Calcula o hash do atributoorg.bouncycastle.asn1.cms.Attribute
getEncoded()
Codifica o atributo em seu formato básico, nesse casoAttribute
boolean
isAnyAttributeHashValid(String algorithmId, byte[] expected)
protected abstract boolean
isAttributeHashValid(String hashAlgorithmId, boolean hashWithoutTag, byte[] expected)
protected boolean
isAttributeHashValid(String hashAlgorithmId, byte[] expected)
Calcula o hash do atributoboolean
isSigned()
Informa se o atributo é assinadoboolean
isUnique()
Verifica se o atributo deve ter apenas uma instância na assinaturaprotected TimeStampVerifier
makeTimeStampVerifier(org.bouncycastle.tsp.TimeStampToken timeStamp, boolean containsRefsTimestamp, boolean containsArchiveTimestamp)
Obtém umTimeStampVerifier
.void
validate()
Valida o atributo de acordo com suas regras específicasvoid
validate(TimeStampReport report, boolean containsRefsTimestamp, boolean containsArchiveTimestamp)
Valida o atributo em seu próprio contexto de validação.Methods inherited from class br.ufsc.labsec.signature.conformanceVerifier.cades.attributes.TimeStamp
addUnsignedAttribute, buildTimeStampToken, compareTo, contentInfoToSignatureContainer, getAttributeList, getContentInfo, getEncodedAttribute, getEncodedAttribute, getIdentifier, getTimeReference, removeUnsignedAttribute, replaceUnsignedAttribute
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface br.ufsc.labsec.signature.conformanceVerifier.common.SignatureAttribute
getValue
-
Field Details
-
signatureVerifier
Objeto de verificador -
INVALID_TIMESTAMP_ERROR
Mensagem de erro.- See Also:
- Constant Field Values
-
INVALID_ASYMMETRIC_CIPHER_ERROR
- See Also:
- Constant Field Values
-
FAILURE_TO_VALIDATE_TIMESTAMP
- See Also:
- Constant Field Values
-
-
Constructor Details
-
TimeStampToken
public TimeStampToken(AbstractVerifier signatureVerifier, Integer index) throws SignatureAttributeExceptionDeve-se utilizar este construtor no momento de validação do atributo. O parâmetroindex
deve ser usado no caso em que há mais de um atributo do mesmo tipo. Caso contrário, ele deve ser zero.- Parameters:
signatureVerifier
- Usado para criar e verificar o atributoindex
- Índice usado para selecionar o atributo- Throws:
SignatureAttributeException
-
TimeStampToken
public TimeStampToken(org.bouncycastle.asn1.cms.Attribute genericEncoding) throws SignatureAttributeExceptionConstrói um objetoIdAaSignatureTimeStampToken
- Parameters:
genericEncoding
- O atributo codificado- Throws:
SignatureAttributeException
-
TimeStampToken
public TimeStampToken(org.bouncycastle.asn1.cms.ContentInfo contentInfo) throws SignatureAttributeExceptionConstrói um objetoIdAaSignatureTimeStampToken
a partir de umContentInfo
- Parameters:
contentInfo
- O conteúdo do carimbo do tempo- Throws:
SignatureAttributeException
-
-
Method Details
-
validate
public void validate(TimeStampReport report, boolean containsRefsTimestamp, boolean containsArchiveTimestamp) throws SignatureAttributeException, CertificateAttributeExceptionValida o atributo em seu próprio contexto de validação. Os casos de retorno negativo dessa validação são indicados por exceções. Para efetuar esta validação é necessário adicionar os certificados do caminho de certificação da carimbadora noCertStore
da classeVerifier
.- Specified by:
validate
in classTimeStamp<org.bouncycastle.asn1.cms.Attribute>
- Parameters:
report
- O relatório de verificação do carimbocontainsRefsTimestamp
- Sinaliza a presença do atributo de RefsTimestampcontainsArchiveTimestamp
- Sinaliza a presença do atributo Archive Timestamp- Throws:
SignatureAttributeException
CertificateAttributeException
-
makeTimeStampVerifier
protected TimeStampVerifier makeTimeStampVerifier(org.bouncycastle.tsp.TimeStampToken timeStamp, boolean containsRefsTimestamp, boolean containsArchiveTimestamp)Obtém umTimeStampVerifier
.- Returns:
- O objeto
TimeStampVerifier
criado
-
createSignerInformationVerifier
protected org.bouncycastle.cms.SignerInformationVerifier createSignerInformationVerifier(X509Certificate certificate) throws org.bouncycastle.operator.OperatorCreationException, org.bouncycastle.cms.CMSExceptionObtém umSignerInformationVerifier
.- Parameters:
certificate
- Certificado final do caminho de certificação que se deseja validar- Returns:
- O objeto
SignerInformationVerifier
criado - Throws:
org.bouncycastle.operator.OperatorCreationException
org.bouncycastle.cms.CMSException
-
getEncoded
Codifica o atributo em seu formato básico, nesse casoAttribute
- Returns:
- O atributo codificado
- Throws:
SignatureAttributeException
-
getArchiveTimeStampContentInfo
public org.bouncycastle.asn1.DERSequence getArchiveTimeStampContentInfo()Retorna o conteúdo do carimbo em formato ASN.1- Returns:
- O conteúdo do carimbo em formato ASN.1
-
isSigned
public boolean isSigned()Informa se o atributo é assinado- Returns:
- Indica se o atributo é assinado
-
isAnyAttributeHashValid
-
getAttributeHash
protected byte[] getAttributeHash(String hashAlgorithmId) throws PbadException, NoSuchAlgorithmExceptionCalcula o hash do atributo- Specified by:
getAttributeHash
in classTimeStamp<org.bouncycastle.asn1.cms.Attribute>
- Parameters:
hashAlgorithmId
- O algoritmo utilizado- Returns:
- O valor de hash do atributo
- Throws:
PbadException
- Exceção em caso de erro durante o cálculoNoSuchAlgorithmException
-
isAttributeHashValid
Calcula o hash do atributo- Specified by:
isAttributeHashValid
in classTimeStamp<org.bouncycastle.asn1.cms.Attribute>
- Parameters:
hashAlgorithmId
- O algoritmo utilizado- Returns:
- O valor de hash do atributo
-
getAttributeHash
protected abstract byte[] getAttributeHash(String hashAlgorithmId, boolean hashWithoutTag) throws PbadException, NoSuchAlgorithmExceptionCalcula o hash do atributo- Parameters:
hashAlgorithmId
- O algoritmo utilizadohashWithoutTag
- Indica a forma de cálculo da hash, de acordo com as notas 2 e 3 da pagina 109 do ETSI TS 101 733 V2.2.1. Se verdadeiro indica que o calculo é feito sem incluir tag e length.- Returns:
- O valor de hash do atributo
- Throws:
PbadException
- Exceção em caso de erro durante o cálculoNoSuchAlgorithmException
-
isAttributeHashValid
protected abstract boolean isAttributeHashValid(String hashAlgorithmId, boolean hashWithoutTag, byte[] expected) -
isUnique
public boolean isUnique()Verifica se o atributo deve ter apenas uma instância na assinatura- Returns:
- Indica se o atributo deve ter apenas uma instância na assinatura
-
validate
Valida o atributo de acordo com suas regras específicas
-