tecgraf.openbus.security
Class Cryptography

java.lang.Object
  extended by tecgraf.openbus.security.Cryptography

public final class Cryptography
extends Object

Classe de utilitária de criptografia.

Author:
Tecgraf

Field Summary
static Charset CHARSET
          Codificação charset padrão.
static String CIPHER_ALGORITHM
          O algoritmo de criptografia (assimétrica) utilizada pelo OpenBus.
 
Method Summary
 byte[] decrypt(byte[] data, RSAPrivateKey privateKey)
          Descriptografa o dado com a chava privada.
 byte[] encrypt(byte[] data, RSAPublicKey publicKey)
          Criptografa o dado com a chave pública.
 byte[] encrypt(byte[] data, X509Certificate certificate)
          Criptografa o dado com o certificado.
 byte[] generateHash(byte[] data)
          Gera um hash do dado, utilizando o algoritmo SHA-256
 KeyPair generateRSAKeyPair()
          Gera um par de chaves RSA.
 RSAPublicKey generateRSAPublicKeyFromX509EncodedKey(byte[] encodedKey)
          Gera uma chave pública à partir da chave codificada em X.509
 MessageDigest getHashAlgorithm()
          Obtém o algortimo de Hash.
static Cryptography getInstance()
          Recupera a instância (singleton) desta classe.
 RSAPrivateKey readKeyFromBytes(byte[] privateKeyBytes)
          Recupera a chave privada a partir de um array de bytes.
 byte[] readKeyFromFile(String privateKeyFileName)
          Recupera um array de bytes da chave privada contida no arquivo fornecido.
 boolean verifySignature(RSAPublicKey publicKey, byte[] rawData, byte[] signedData)
          Verifica a assinatura de um dado.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CIPHER_ALGORITHM

public static final String CIPHER_ALGORITHM
O algoritmo de criptografia (assimétrica) utilizada pelo OpenBus.

See Also:
Constant Field Values

CHARSET

public static final Charset CHARSET
Codificação charset padrão.

Method Detail

getInstance

public static Cryptography getInstance()
Recupera a instância (singleton) desta classe.

Returns:
a instância

encrypt

public byte[] encrypt(byte[] data,
                      X509Certificate certificate)
               throws CryptographyException
Criptografa o dado com o certificado.

Parameters:
data - o dado a ser criptografado.
certificate - o certificado
Returns:
O dado criptografado.
Throws:
CryptographyException

encrypt

public byte[] encrypt(byte[] data,
                      RSAPublicKey publicKey)
               throws CryptographyException
Criptografa o dado com a chave pública.

Parameters:
data - o dado a ser criptografado.
publicKey - a chave pública.
Returns:
O dado criptografado.
Throws:
CryptographyException

decrypt

public byte[] decrypt(byte[] data,
                      RSAPrivateKey privateKey)
               throws CryptographyException
Descriptografa o dado com a chava privada.

Parameters:
data - o dado criptografado.
privateKey - a chave privada.
Returns:
o dado descriptografado.
Throws:
CryptographyException

generateRSAPublicKeyFromX509EncodedKey

public RSAPublicKey generateRSAPublicKeyFromX509EncodedKey(byte[] encodedKey)
                                                    throws CryptographyException
Gera uma chave pública à partir da chave codificada em X.509

Parameters:
encodedKey - chave codificada.
Returns:
A chave pública RSA
Throws:
CryptographyException

generateRSAKeyPair

public KeyPair generateRSAKeyPair()
                           throws CryptographyException
Gera um par de chaves RSA.

Returns:
o par de chaves.
Throws:
CryptographyException

generateHash

public byte[] generateHash(byte[] data)
                    throws CryptographyException
Gera um hash do dado, utilizando o algoritmo SHA-256

Parameters:
data - o dado
Returns:
o hash do dado.
Throws:
CryptographyException

getHashAlgorithm

public MessageDigest getHashAlgorithm()
                               throws CryptographyException
Obtém o algortimo de Hash.

Returns:
o algoritmo.
Throws:
CryptographyException

readKeyFromFile

public byte[] readKeyFromFile(String privateKeyFileName)
                       throws IOException
Recupera um array de bytes da chave privada contida no arquivo fornecido.

Parameters:
privateKeyFileName - o path para o arquivo.
Returns:
A chave privada RSA.
Throws:
IOException

readKeyFromBytes

public RSAPrivateKey readKeyFromBytes(byte[] privateKeyBytes)
                               throws NoSuchAlgorithmException,
                                      InvalidKeySpecException
Recupera a chave privada a partir de um array de bytes.

Parameters:
privateKeyBytes - bytes da chave privada
Returns:
A chave privada RSA.
Throws:
NoSuchAlgorithmException
InvalidKeySpecException

verifySignature

public boolean verifySignature(RSAPublicKey publicKey,
                               byte[] rawData,
                               byte[] signedData)
                        throws CryptographyException
Verifica a assinatura de um dado.

Parameters:
publicKey - a chave publica a ser utilizada na verificação.
rawData - o dado supostamente assinado.
signedData - o dado assinado.
Returns:
true caso a assinatura é válida, e false caso contrário.
Throws:
CryptographyException


Copyright © 2014. All Rights Reserved.