Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jair Humberto

usar libeay32.dll no vb.net

Recommended Posts

Olá pessoal, Alguém sabe como faço para refereciar essa dll no vb.net? ou c# ou até vb6?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Clica com o botão oposto no projeto e escolha Add Reference e localiza a DLL.

 

Isto serve pra qualquer DLL?

 

Cliquei com o botão direito em cima do projeto e cliquei em "Add Reference...". Fui até a aba "Browse" selecionei a dll e ao clicar em "OK"

me foi apresentada a seguinte mensagem:

 

A reference to 'C:\windows\system32\libeay32.dll' could not be added. Please make sure that the file is accessible, and that it is a valid assembly or COM component.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal,

 

Estou tentando gerar o registro EAD para o PAF no .NET através do OpenSSL. Eu preciso usar apenas a DLL libeay32.dll, no entanto não achei documentação sobre as funções desta dll. Encontrei um wrapper para ela chamado OpenSSL.NET que pode ser acessado por este link. Para usar este adaptador tenho que usar mais uma dll, o que eu queria evitar.

 

No entanto resolvi testar as funções e ver se valida no eecfc da sefaz, o que não está acontecendo. Vejam meu código (vb.net):

 

Dim md5file = md5_file(filepath, True)
Dim rsa As OpenSSL.Crypto.RSA = OpenSSL.Crypto.RSA.FromPrivateKey(OpenSSL.Core.BIO.File("priv_key.pem", "r"))
Dim bloco As String = Convert.ToChar(16) & md5file & "                                                                                                               "
Dim t As Byte() = Encoding.Default.GetBytes(bloco)
Dim s As Byte() = rsa.PrivateEncrypt(t, OpenSSL.Crypto.RSA.Padding.None)

Dim s_string As String = ""
    For i As Integer = 0 To s.Length - 1
    s_string += s(i).ToString("x2").ToUpper
Next

A assinatura gerada na variavel s_string, está constando como invalida no software eecfc, eu gostaria de saber se o bloco de dados está certo

não entendi a parte de "byte mais e menos significativo" do md5 do anexo VIII do ato cotepe.

 

alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, consegui gerar uma assinatura EAD válida. Agora só falta eu ficar independente dessa nova dll.

Também quero pegar a chave privada sem precisar de arquivo :/ alguém tem alguma sugestão?

 

o codigo abaixo já funciona:

 

Dim fs As New System.IO.FileStream(filepath, IO.FileMode.Open)
Dim md5 As New MD5CryptoServiceProvider
md5.ComputeHash(fs)
fs.Close()

Dim rsa As OpenSSL.Crypto.RSA = OpenSSL.Crypto.RSA.FromPrivateKey(OpenSSL.Core.BIO.File("priv_key.pem", "r"))

Dim bloco_A As Byte() = New Byte() {16}
Dim bloco_B As Byte() = md5.Hash
Dim bloco_C As Byte() = Encoding.ASCII.GetBytes("                                                                                                               ")
Dim bloco(127) As Byte
Buffer.BlockCopy(bloco_A, 0, bloco, 0, bloco_A.Length)
Buffer.BlockCopy(bloco_B, 0, bloco, bloco_A.Length, bloco_B.Length)
Buffer.BlockCopy(bloco_C, 0, bloco, bloco_B.Length + 1, bloco_C.Length)

Dim s As Byte() = rsa.PrivateEncrypt(bloco, OpenSSL.Crypto.RSA.Padding.None)

Dim s_string As String = ""
For i As Integer = 0 To s.Length - 1
    s_string += s(i).ToString("x2").ToUpper
Next
' s_string contem a assinatura.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.