java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.report.verificationPackage.compressedArtifact.CompressedArtifact<Art>
Type Parameters:
Art - Classe do artefato em questão.
Direct Known Subclasses:
CompressedCommonSource, CompressedFileHash, CompressedLPA, CompressedPA, CompressedReceiptRequest, CompressedStamp, CompressedTrustAnchorCert

public abstract class CompressedArtifact<Art>
extends Object
Classe que representa um artefato comprimido: armazena o nome do artefato, o artefato em si e o seu código hash, além de ter métodos relacionados à compressão e parsing do artefato.

Esta classe também serve de invólucro do artefato, a fim de evitar erros relacionados à nulidade deste objeto.

  • Field Details

    • artifactName

      protected final String artifactName
    • artifact

      protected final Art artifact
  • Constructor Details

    • CompressedArtifact

      public CompressedArtifact​(String artifactName, Art artifact)
    • CompressedArtifact

      protected CompressedArtifact​(String artifactName, org.json.JSONObject artifact, boolean getCode)
  • Method Details

    • parseMultipleCompressed

      protected static <Comp extends CompressedArtifact<?>> Map<Integer,​Comp> parseMultipleCompressed​(org.json.JSONObject artifactsInfo, String artifactName, Function<org.json.JSONObject,​Comp> constructor)
      Realiza o parsing de múltiplos artefatos de um pacote de verificação.
      Type Parameters:
      Comp - Classe do artefato comprimido.
      Parameters:
      artifactsInfo - Parte do pacote de verificação relativo a um dos arquivos verificados.
      artifactName - Chave do artefato em artifactsInfo.
      constructor - construtor da especialização de @CompressedArtifact a ser criada.
      Returns:
      Um Map com valores sendo os artefatos e chaves os seus códigos hash.
    • parseSingleCompressed

      protected static <Art> Art parseSingleCompressed​(org.json.JSONObject artifactsInfo, String artifactName, Function<org.json.JSONObject,​CompressedArtifact<Art>> constructor)
      Realiza o parsing de um único artefato de um pacote de verificação.
      Type Parameters:
      Art - Classe do artefato a ser parseado.
      Parameters:
      artifactsInfo - Parte do pacote de verificação relativo a um dos arquivos verificados.
      artifactName - Chave do artefato em artifactsInfo.
      constructor - construtor da especialização de @CompressedArtifact a ser criada.
      Returns:
      O artefato parseado.
    • getMap

      protected abstract Map<String,​Serializable> getMap() throws IOException, EncodingException
      Retorna um Map com as informações do artefato.
      Returns:
      Um Map com as informações do artefato.
      Throws:
      IOException - Caso tenha havido um erro de I/O.
      EncodingException - Caso tenha havido um problema durante a extração dos bytes de uma assinatura referente a uma Lpa.
    • parseArtifact

      protected abstract Art parseArtifact​(org.json.JSONObject artifact) throws IOException, org.json.JSONException
      Realiza o parsing de um artefato a partir de um JSONObject.
      Parameters:
      artifact - JSONObject relativo ao artefato.
      Returns:
      O artefato parseado.
      Throws:
      IOException - Caso tenha havido um erro de I/O.
      org.json.JSONException - Caso tenha havido um erro no parsing do JSONObject.
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals​(Object obj)
      Overrides:
      equals in class Object
    • getArtifact

      public final Art getArtifact()
    • hasArtifact

      public final boolean hasArtifact()
    • compress

      public final org.json.JSONObject compress()
      Captura as informações do artefato via getMap() e retorna um JSONObject com essas informações.
      Returns:
      Um JSONObject com as informações do artefato.
      See Also:
      getMap()
    • computeHashCode

      protected Integer computeHashCode()
    • toBase64

      protected String toBase64​(byte[] data)
    • encodedToBase64String

      protected <T extends org.bouncycastle.util.Encodable> String encodedToBase64String​(T obj) throws IOException
      Throws:
      IOException
    • getNullable

      protected <T extends Serializable> Serializable getNullable​(T data)
    • getName

      protected static String getName​(org.json.JSONObject info)
    • getExtraName

      protected static String getExtraName​(org.json.JSONObject info)
    • getCode

      protected static Integer getCode​(org.json.JSONObject info)
    • getSource

      protected static String getSource​(org.json.JSONObject info)
    • getEncoded

      protected static String getEncoded​(org.json.JSONObject info)
    • getExtraEncoded

      protected static String getExtraEncoded​(org.json.JSONObject info)