Manual em anexo.
Basicamente seria descriptografar o arquivo, se tiver algum na pasta disponível.
E se possível enviar o arquivo descriptografado para um FTP.
Exemplo em Java:
WEBTAInputStream wis = null;
byte[] bufDecripto = null;
try{
//Obtem chave de criptografia
byte[] chaveCripto = WEBTACryptoUtil.decodeKeyFile(new
File("c:/CRIPTOGRAFIA200805191017.bin"), "U9dsdfos");
//Cria objeto para ler o arquivo criptografado
wis = new WEBTAInputStream("CB2904100.RET", "C:/RETORNO", chaveCripto);
//Loop de leitura, onde o conteudo do arquivo
//é lido, descriptografado, descomprimido e armazenado em bufDecripto.
//Este loop e´executado enquanto houver dados para leitura
while(wis.read(bufDecripto) > 0) {
//...
//A aplicação processa os dados
//do arquivo de retorno
//...
}
} catch (ParameterException e){
//Efetua tratamento da excecao
//System.out.println (e.getMessage());
} catch (IOException e){
//Efetua tratamento da excecao
//System.out.println (e.getMessage());
} catch (CryptoException e){
//Efetua tratamento da excecao
//System.out.println (e.getMessage());
} finally {
if (wis != null) {
try {
wis.close();
} catch (IOException e){
//Efetua tratamento da excecao
//System.out.println (e.getMessage());
}
}
}
Exemplo em C:
unsigned char chaveCripto[16];
void *deCriptoHandle = NULL;
unsigned char bufferAux[8192];
int qtdeByteLidos = 1;
char mensagemErro[512];
//Decodifica chave para descriptografar arquivo
if (!fDecodeKeyFile("E:/criptografia200805191537.bin", "aSd09w",
chaveCripto, mensagemErro))
{
printf ("Erro ao decodificar Chave de Criptografia – mensagem de erro:
%s\n", mensagemErro);
return -1;
}
//Cria handle para descriptografar arquivo recebido do WebTA
//O arquivo CB2904100.RET foi recebido do WebTA e encontra-se
//armazenado em C:/RETORNO
deCriptoHandle = fInitDecoder("CB2904100.RET", "C:/RETORNO", chaveCripto,
mensagemErro);
if (deCriptoHandle == NULL)
{
printf ("Erro na iniciacao da descriptografia do arquivo – mensagem de
erro: %s\n", mensagemErro);
return -1;
}
//Enquanto houver dados para descriptografar
//do arquivo de retorno
while(qtdeByteLidos > 0)
{
//Descriptografa e descomprimi os dados do arquivo
qtdeByteLidos = fReadData(deCriptoHandle, bufferAux,
sizeof(bufferAux), mensagemErro);
if (qtdeByteLidos > 0)
{
//O Sistema processa os dados do arquivo de retorno
//...
}
}
//Verifica o que determinou a saída do loop
if (qtdeByteLidos == 0)
{
//Tratamento de erro, pois houve erro
//na descriptografia
printf ("Erro na descriptografia do arquivo – mensagem de
erro: %s\n", mensagemErro);
}
//Finaliza processamento de descriptografia do arquivo
fCloseDecoder (deCriptoHandle mensagemErro);
Exemplo em .NET
[DllImport("WEBTAEncoderLib.dll",
CharSet = CharSet.Ansi,
CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr fInitEncoder(
[MarshalAs(UnmanagedType.LPStr)]String filename,
[MarshalAs(UnmanagedType.LPStr)]String directory,
byte [] key,
[MarshalAs(UnmanagedType.LPStr)]StringBuilder msgErro);