Bom dia Mestre, parabéns e muitos anos de vida. Precisava ler um .pfx e não remover
achei este código mas não consegui transformar em harbour
Código: Selecionar todos
' --- Configuração ---
Const CAPICOM_CURRENT_USER_STORE = 2
Const CAPICOM_MY_STORE = "MY"
Const CAPICOM_STORE_OPEN_READ_ONLY = 0
' --- Variáveis ---
Dim objStore
Dim objCert
Dim objPfx
Dim strPfxPath
Dim strPfxPassword
' --- Definir caminho do arquivo PFX e senha ---
strPfxPath = "c:\caminho\para\seu\arquivo.pfx" ' Substitua pelo caminho real do seu arquivo
strPfxPassword = "sua_senha" ' Substitua pela senha do seu arquivo PFX
' --- Criar objeto CAPICOM.Store ---
Set objStore = CreateObject("CAPICOM.Store")
' --- Abrir o armazenamento de certificados ---
objStore.Open CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_READ_ONLY
' --- Carregar o certificado do arquivo PFX ---
Set objPfx = CreateObject("CAPICOM.PFX")
' --- Tentar carregar o arquivo PFX. A função de carregamento retorna TRUE em caso de sucesso e FALSE em caso de falha ---
If objPfx.Load(strPfxPath, strPfxPassword) Then
' --- Obter o certificado da estrutura PFX ---
Set objCert = objPfx.Certificates.Item(1)
' --- Exibir informações do certificado (apenas um exemplo) ---
WScript.Echo "Assunto: " & objCert.SubjectName
WScript.Echo "Emissor: " & objCert.IssuerName
WScript.Echo "Validade: " & objCert.ValidFromDate & " - " & objCert.ValidUntilDate
' --- Aqui você pode usar o certificado e a chave privada para outras operações ---
' Por exemplo, você pode acessar a chave privada:
' Set objPrivateKey = objCert.PrivateKey
' WScript.Echo "Chave Privada: " & objPrivateKey.KeySize
' --- Limpar objetos ---
Set objCert = Nothing
Set objPfx = Nothing
Else
WScript.Echo "Erro ao carregar o arquivo PFX: " & objPfx.LastError
End If
' --- Fechar o armazenamento ---
objStore.Close
' --- Limpar objeto ---
Set objStore = Nothing
WScript.Echo "Fim."
Consegui, Mestre, se quiser incorporar na classe, pode usar sem moderação.
Código: Selecionar todos
#include "minigui.ch"
PROCEDURE Main()
LOCAL objStore
LOCAL strPfxPath := "D:\enzza\classe_nfse\nome_do_seu_certificado.pfx"
LOCAL strPfxPassword := "1234"
Set Century on
Set date Briti
// Criar objeto CAPICOM.Store
objStore := win_oleCreateObject( "CAPICOM.Certificate" )
objStore:Load( strPfxPath, strPfxPassword, 0, 0 )
msginfo( "Assunto: " + objStore:SubjectName)
msginfo( "Emissor: " + objStore:IssuerName)
msginfo( "Validade: " + Dtoc(objStore:ValidFromDate) + " até " + Dtoc(objStore:ValidToDate))
msginfo( "Thumbprint: " + objStore:Thumbprint)
msginfo( "Serial number: " + objStore:SerialNumber)
msginfo( "Versão: " + Hb_Ntos(objStore:Version))
msginfo( "Instalado ?: " + Iif(objStore:Archived, [SIM], [NÃO]) )
objStore := NIL
msginfo( "Fim.")
RETURN (Nil)
obg
Att.
Marcelo A. L. Carli
Marília/SP
Capital Nacional do Alimento ®
https://malc-informatica.ueniweb.com
Insta: @malcarli25
Email / Skype:
marceloalcarli@gmail.com