RSACryptoServiceProvider em 4GL

Discussão em 'Progress 4GL' iniciado por Portelinha, Setembro 21, 2010.

  1. Portelinha

    Portelinha Sem Pontuação

    Olá a todos,

    Necessito de implementar o metodo C# abaixo em progress 4GL


    SHA1Managed sha = new SHA1Managed();
    ....
    RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
    byte[] SignedHashValue = rsa.SignData(digest, sha);

    Console.WriteLine(Convert.ToBase64String(SignedHashValue));

    Em progress consigo ter o digest igual ao C#:

    DEFINE VARIABLE tmp AS RAW NO-UNDO.
    DEFINE VARIABLE digest AS LONGCHAR NO-UNDO.
    DEFINE VARIABLE cKeyPrivate AS LONGCHAR NO-UNDO.


    ASSIGN cKeyPrivate = 'myKeyPrivate'.

    tmp = SHA1-DIGEST("my test to encrypt").
    digest = BASE64-ENCODE(tmp).

    /*digest: pFyzYxHg+l1Ib0Vivv33QnYRK90= */
    MESSAGE string(digest) VIEW-AS ALERT-BOX INFO BUTTONS OK.

    Agora como faço o RSACryptoServiceProvider, que é esta instrução.

    byte[] SignedHashValue = rsa.SignData(digest, sha);
    Console.WriteLine(Convert.ToBase64String(SignedHashValue));


    Grato pela atenção.
  2. kirchner

    kirchner Membro Participativo Moderador

    Não sei se você consegue isso direto na linguagem. O Progress tem algumas funções prontas p/ criptografia (ENCRYPT e DECRYPT), mas hash com assinatura não conheço.

    O que você pode tentar é chamar a Cryptographic API diretamente. Muito trabalho na minha opinião, mas é possível.

    Você não pode criar um componente em C# e chamá-lo pelo Progress mesmo? Ou então em C++ ou em qualquer linguagem.
    Até um webservice acho que passaria...
  3. Portelinha

    Portelinha Sem Pontuação

    Olá Marcos, antes de mais obrigado pela sua resposta.

    Já fiz o código em ABL em versão 10.2B, e consegui devolver assintura correcta.

    Agora estou com a seguinte problema,

    ao invocar a classe noutro computador que somente tem o OEStudio 10.1B esta a dar este erro...

    System.Security.Cryptography. is not a valid package; The directory does not exist relative to PROPATH (13643)

    ** C:\teste\chave.cls Could not understand line 13. (196)

    O pc tem a framework até a 3.0.

    Pode me explicar o processo de configuar o Progress para ler as librarias.

Compartilhe esta Página