br.gov.ans.tiss.nucleo
Class AgenteCriptografico

java.lang.Object
  extended by br.gov.ans.tiss.nucleo.AgenteCriptografico
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
AgenteRijndael

public abstract class AgenteCriptografico
extends java.lang.Object
implements java.io.Serializable

Abstração que representa a base de todos os agentes de criptografia. Os agentes efetivos, como o RIJNDAEL, por exemplo, são especializações desta classe.

See Also:
Serialized Form

Constructor Summary
AgenteCriptografico()
           
 
Method Summary
abstract  byte[] decripta(byte[] pBase, byte[] pChave)
          Abstração do método mais primitivo de decodificação.
 java.lang.String decripta(java.lang.String pBase, java.lang.String pChave)
          Capa para decodificação de strings.
abstract  byte[] encripta(byte[] pBase, byte[] pChave)
          Abstração do método mais primitivo de criptografia, que encripta um array de bytes segundo a técnica implementada pelo agente concreto.
 java.lang.String encripta(java.lang.String pBase, java.lang.String pChave)
          Capa para codificação de strings.
 byte[] extendeChave(byte[] pChaveBase, int pTamanho)
          Aumenta a chave dada ao algoritmo, até que seja do tamanho do bloco de codificação.
 byte[] extendeChave(java.lang.String pChaveBase, int pTamanho)
          Capa que extende uma chave passada como um string.
abstract  void inicializaProvedor()
          Construtor vazio.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AgenteCriptografico

public AgenteCriptografico()
Method Detail

inicializaProvedor

public abstract void inicializaProvedor()
Construtor vazio.


encripta

public abstract byte[] encripta(byte[] pBase,
                                byte[] pChave)
Abstração do método mais primitivo de criptografia, que encripta um array de bytes segundo a técnica implementada pelo agente concreto. Deve ser implementada em cada agente concreto.

Parameters:
pBase - Bytes do texto a ser encriptado.
pChave - Bytes que serão usados como chave.
Returns:
O array de bytes encriptados pelo agente.

decripta

public abstract byte[] decripta(byte[] pBase,
                                byte[] pChave)
Abstração do método mais primitivo de decodificação. Cada agente concreto deve implementar este método, que atua sobre arrays de bytes.

Parameters:
pBase - Bytes codificados.
pChave - Bytes da chave.
Returns:
Texto claro (decodificado), na forma de um array de bytes.

encripta

public java.lang.String encripta(java.lang.String pBase,
                                 java.lang.String pChave)
Capa para codificação de strings. Simplesmente transforma os strings de texto claro e de chave em arrays de bytes e chama o método primitivo. No retorno deste, reconverte o array de bytes resultante para string e retorna.

Parameters:
pBase - O string em texto claro.
pChave - A chave, em formato string.
Returns:
String com o texto codificado.

decripta

public java.lang.String decripta(java.lang.String pBase,
                                 java.lang.String pChave)
Capa para decodificação de strings. Apenas converte os parâmetros para arrays de bytes e chama o método primitivo de decodificação. No retorno, converte o resultado para string e devolve ao chamante.

Parameters:
pBase - String com o texto codificado.
pChave - String com a chave.
Returns:
String em texto claro, decodificado.

extendeChave

public byte[] extendeChave(byte[] pChaveBase,
                           int pTamanho)
Aumenta a chave dada ao algoritmo, até que seja do tamanho do bloco de codificação. Este é o método mais primitivo de extensão de chaves, já que opera sobre arrays de bytes, exclusivamente.

Parameters:
pChaveBase - Base para a chave.
pTamanho - Tamanho até o qual a chave deve ser extendida (em bits).
Returns:
Chave extendida.

extendeChave

public byte[] extendeChave(java.lang.String pChaveBase,
                           int pTamanho)
Capa que extende uma chave passada como um string. Apenas converte a chave para array de bytes e chama o método mais primitivo. Como as chaves extendidas são, necessariamente, binárias, retorna o resultado como um array de bytes.

Parameters:
pChaveBase - Base para a chave.
pTamanho - Tamanho final da chave (em bits)
Returns:
Array de bytes com a chave final extendida.