java.lang.Object
br.ufsc.labsec.utils.cache.Cache<RevocationResult<Data>>
br.ufsc.labsec.signature.repository.PKCS12IdentityService.RevocationCache<org.bouncycastle.cert.ocsp.OCSPResp>
br.ufsc.labsec.signature.repository.PKCS12IdentityService.OCSPCacheManagement
All Implemented Interfaces:
OcspRevocationCache, Iterable<CacheEntry<RevocationResult<org.bouncycastle.cert.ocsp.OCSPResp>>>

public class OCSPCacheManagement
extends RevocationCache<org.bouncycastle.cert.ocsp.OCSPResp>
implements OcspRevocationCache
A classe OCSPCacheManagement é responsável por cuidar do cachê das respostas OCSP. Os arquivos de cache são armazenados no diretório especificado no construtor. O nome do aquivo é o digest SHA-256 do certificado e o conteúdo é a resposta OCSP em Base64.
  • Constructor Details

    • OCSPCacheManagement

      public OCSPCacheManagement​(String cachePath)
      Construtor da classe OCSPCacheManagement. Cria o diretório de cache se ele não existir.
      Parameters:
      cachePath - caminho do diretório de cache.
  • Method Details

    • getOCSPFromCertificate

      public Optional<RevocationResult<org.bouncycastle.cert.ocsp.OCSPResp>> getOCSPFromCertificate​(Object certificate, Object issuer, Time timeReference)
      Buscas e retorna a resposta OCSP no cache. Se a resposta não estiver no cache, ela é baixada.
      Specified by:
      getOCSPFromCertificate in interface OcspRevocationCache
      Parameters:
      certificate - Certificado.
      issuer - Emissor.
      timeReference - Data de referência.
      Returns:
      Resposta OCSP.
    • decodeEntry

      protected RevocationResult<org.bouncycastle.cert.ocsp.OCSPResp> decodeEntry​(byte[]... encodedParts) throws EncodingException
      Description copied from class: Cache
      Decodifica um objeto em cache a partir de seus bytes em "chunks", habilitando armazenamento de um objeto em diversos arquivos, como assinaturas detached, por exemplo.
      Specified by:
      decodeEntry in class Cache<RevocationResult<org.bouncycastle.cert.ocsp.OCSPResp>>
      Parameters:
      encodedParts - Os bytes do objeto
      Returns:
      O objeto decodificado
      Throws:
      EncodingException - Exceção em caso de erro na decodificação
    • download

      protected Optional<RevocationResult<org.bouncycastle.cert.ocsp.OCSPResp>> download​(SubjectIssuerPair certificatePair)
      Specified by:
      download in class RevocationCache<org.bouncycastle.cert.ocsp.OCSPResp>
    • isUseful

      protected boolean isUseful​(org.bouncycastle.cert.ocsp.OCSPResp response, Date timeReference)
      Verifica se a resposta OCSP é útil.
      Specified by:
      isUseful in class RevocationCache<org.bouncycastle.cert.ocsp.OCSPResp>
      Parameters:
      response - Resposta OCSP.
      timeReference - Data de referência.
      Returns:
      true se a resposta é útil, false caso contrário. Uma resposta é útil se o certificado foi revogado e a data de revogação é anterior a data de referência, ou se a data de referência está entre a data de thisUpdate e nextUpdate e o certificado não foi revogado.