Class DatabaseImpl

java.lang.Object
br.ufsc.labsec.signature.database.DatabaseImpl
All Implemented Interfaces:
Database

public class DatabaseImpl
extends Object
implements Database
  • Method Details

    • getTrustPoints

      public Set<? extends TrustPoint> getTrustPoints​(TrustPoint.TrustPointType type)
      Retorna os pontos de confiança de um determinado tipo
      Specified by:
      getTrustPoints in interface Database
      Parameters:
      type - Tipo dos pontos de confiança
      Returns:
      Conjunto de pontos de confiança
    • getTrustPoint

      public TrustPoint getTrustPoint​(String url)
      Description copied from interface: Database
      Retorna um ponto de confiança armazenado no banco de dados
      Specified by:
      getTrustPoint in interface Database
      Parameters:
      url - url do ponto de confiança
      Returns:
      ponto de confiança
    • getTrustedLists

      public Set<org.apache.commons.lang3.tuple.Pair<String,​byte[]>> getTrustedLists()
      Retorna as listas confiáveis e suas urls
      Specified by:
      getTrustedLists in interface Database
      Returns:
      Conjunto de pares de url e lista confiável
    • getTrustAnchors

      public Set<TrustAnchor> getTrustAnchors​(String... urls)
      Busca todas as âncoras de confiança no banco de dados ou as âncoras de confiança com as urls especificadas
      Specified by:
      getTrustAnchors in interface Database
      Parameters:
      urls - urls das âncoras de confiança, se não for passado nenhum, retorna todas
      Returns:
      Conjunto de âncoras de confiança
    • insertTrustAnchor

      public void insertTrustAnchor​(String url, TrustAnchor trustAnchor)
      Insere uma âncora de confiança no banco de dados
      Specified by:
      insertTrustAnchor in interface Database
      Parameters:
      url - Url da âncora de confiança
      trustAnchor - Âncora de confiança
    • insertTrustedList

      public void insertTrustedList​(String url, byte[] bytes, String hash)
      Insere uma lista confiável no banco de dados
      Specified by:
      insertTrustedList in interface Database
      Parameters:
      url - Url da lista confiável
      bytes - Lista confiável
      hash - hash da lista de confiança
    • insertTrustPoint

      public TrustPoint insertTrustPoint​(String url, TrustPoint.TrustPointType type)
      Insere uma âncora de confiança no banco de dados
      Specified by:
      insertTrustPoint in interface Database
      Parameters:
      url - Url da âncora de confiança
      type - Tipo da âncora de confiança
      Returns:
      TrustPoint
    • deleteTrustAnchor

      public void deleteTrustAnchor​(String hash)
      Remove uma âncora de confiança do banco de dados
      Specified by:
      deleteTrustAnchor in interface Database
      Parameters:
      hash - Hash da âncora de confiança
    • deleteTrustPoint

      public void deleteTrustPoint​(String url)
      Remove as âncoras de confiança do banco de dados com o url especificado
      Specified by:
      deleteTrustPoint in interface Database
      Parameters:
      url - Url da âncora de confiança
    • getCachedResults

      public Map<String,​TrustPointResult> getCachedResults()
      Description copied from interface: Database
      Retorna os resultados dos pontos de confiança armazenados na cache
      Specified by:
      getCachedResults in interface Database
      Returns:
      resultados dos pontos de confiança
    • insertCachedResult

      public void insertCachedResult​(TrustPointResult result)
      Description copied from interface: Database
      Insere um resultado de um ponto de confiança no cache
      Specified by:
      insertCachedResult in interface Database
      Parameters:
      result - resultado do ponto de confiança
    • insertAttributeCertificateRule

      public void insertAttributeCertificateRule​(String cnpj, Collection<org.bouncycastle.asn1.ASN1ObjectIdentifier> oids)
      Specified by:
      insertAttributeCertificateRule in interface Database
    • removeAttributeCertificateRule

      public void removeAttributeCertificateRule​(String cnpj)
      Specified by:
      removeAttributeCertificateRule in interface Database
    • removeAttributeCertificateRule

      public void removeAttributeCertificateRule​(String cnpj, String oid)
      Specified by:
      removeAttributeCertificateRule in interface Database
    • getAttributeCertificateRules

      public Map<String,​Set<org.bouncycastle.asn1.ASN1ObjectIdentifier>> getAttributeCertificateRules()
      Specified by:
      getAttributeCertificateRules in interface Database
    • alterAttributeCertificateRule

      public void alterAttributeCertificateRule​(String cnpj, Collection<org.bouncycastle.asn1.ASN1ObjectIdentifier> oids)
      Specified by:
      alterAttributeCertificateRule in interface Database
    • updateCache

      public void updateCache()
      Description copied from interface: Database
      Atualiza o cache de urls de âncoras de confiança e listas de confiança com os valores do banco de dados
      Specified by:
      updateCache in interface Database
    • deleteTrustedList

      public void deleteTrustedList​(String hash)
      Description copied from interface: Database
      Remove uma lista de confiança do banco de dados
      Specified by:
      deleteTrustedList in interface Database
      Parameters:
      hash - hash da lista de confiança
    • hasTrustPoint

      public boolean hasTrustPoint​(String url)
      Verifica se existe uma âncora de confiança com o url especificado
      Specified by:
      hasTrustPoint in interface Database
      Parameters:
      url - Url da âncora de confiança
      Returns:
      True se existir uma âncora de confiança com o url especificado
    • create

      public static Database create​(List<TrustPoint> trustPoints, String filePath, boolean clearDatabase)
      Cria o banco de dados e retorna uma instância do banco de dados
      Parameters:
      trustPoints - Conjunto de âncoras de confiança iniciais
      filePath - Caminho do arquivo do banco de dados
      clearDatabase - Se o arquivo deve ser apagado caso exista
      Returns:
      Instância do banco de dados
    • getDefaultDatabase

      public static Database getDefaultDatabase​(Path databasePath, boolean clearDatabase)
    • getDatabase

      public static Database getDatabase​(List<TrustPoint> trustPoints, Path databasePath, boolean clearDatabase)