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
-
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
-