none
Assinatura Digital,janela de item protegido RRS feed

  • Pergunta

  • Bom dia, estou desenvolvendo um sistema de certificação digital, e percebi que quando vou assinar o documeto, ele abre uma janela com a mensagem "Um aplicativo esta solicitando um item protegido "Chave privada CryptoAPI", se dou OK ele funciona perfeitamente. Meu objetivo era sumir com esta janela, isso e possivel?.

    Uso vb6 e CAPICOM

    quinta-feira, 14 de junho de 2007 11:48

Respostas

  • Como prometivo aqui vai o codigo resolvido :

    [code]

    Private myStore As Store
    Private cert As Certificate
    Private li As ListItem
    Private i As Integer

    Private Sub chaveprivada_Click()
    Lista.ListItems.Clear
    Set myStore = New Store

    myStore.Open CAPICOM_CURRENT_USER_STORE, "MY", CAPICOM_STORE_OPEN_READ_ONLY

    For i = 1 To myStore.Certificates.Count

    Set cert = myStore.Certificates(i)
    Set li = Lista.ListItems.Add(, , cert.GetInfo(CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME))
    Set li.Tag = cert

    Lista.ListItems(i).ListSubItems.Add , , cert.GetInfo(CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME)
    Lista.ListItems(i).ListSubItems.Add , , cert.ValidFromDate
    Lista.ListItems(i).ListSubItems.Add , , cert.ValidToDate
    Next i

    End Sub
    [/code]


    Sendo a Lista como uma ListView
    terça-feira, 26 de junho de 2007 17:12

Todas as Respostas

  • Depende de como você importou a chave privada. Se você habilitou "Strong Private Key Protection" então a caixa de diálogo será sempre exibida - é uma forma de proteger o usuário contra usos indevidos da chave.

     

    Reimporte a chave sem habilitar essa opção durante a importação.

    quinta-feira, 14 de junho de 2007 22:10
  • O problema é esse, em momento nenhum defini q a chava seria protegida. Existe algum outro lugar alem do codigo do programa q va mexer nisso?

     

    Editado: Encontrei a resposta, o certificado estava com permição media/alta. Obrigado pela ajuda.

     

    Outra coisa, é possivel mudar a aparencia desta janela?

    sexta-feira, 15 de junho de 2007 12:00
  • Não, essa é uma caixa de diálogo padrão do sistema operacional. Não dá para customizá-la.
    sexta-feira, 15 de junho de 2007 22:48
  • Para ajudar aqueles q tem o mesmo problema q eu, descobri q é possivel sim alterar a janela.

    msdn2.microsoft.com/En-US/library/aa375732.aspx
     
     Basta entrar neste link e procurar sobre a janela do certificado.
     
    Abraços
    segunda-feira, 18 de junho de 2007 16:29
  • Legal!

     

    Você já conseguiu? Pode compartilhar o código conosco? Acredito que possa ser útil para muita gente...

    segunda-feira, 18 de junho de 2007 16:57
  • Ainda não concegui, ele se baseia em CredUIPromptForCredentials de acordo com a descrição ele altera as informações da propria janela q é exibida, só oq ainda n concegui e chegar nessa alteração, estou procurando uma melhor explicação do assunto pra começar.
    segunda-feira, 18 de junho de 2007 18:21
  • Como prometivo aqui vai o codigo resolvido :

    [code]

    Private myStore As Store
    Private cert As Certificate
    Private li As ListItem
    Private i As Integer

    Private Sub chaveprivada_Click()
    Lista.ListItems.Clear
    Set myStore = New Store

    myStore.Open CAPICOM_CURRENT_USER_STORE, "MY", CAPICOM_STORE_OPEN_READ_ONLY

    For i = 1 To myStore.Certificates.Count

    Set cert = myStore.Certificates(i)
    Set li = Lista.ListItems.Add(, , cert.GetInfo(CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME))
    Set li.Tag = cert

    Lista.ListItems(i).ListSubItems.Add , , cert.GetInfo(CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME)
    Lista.ListItems(i).ListSubItems.Add , , cert.ValidFromDate
    Lista.ListItems(i).ListSubItems.Add , , cert.ValidToDate
    Next i

    End Sub
    [/code]


    Sendo a Lista como uma ListView
    terça-feira, 26 de junho de 2007 17:12
  • Phyroxus,

    como faço para alterar a permissão de um certificado?

    Obrigado!
    sexta-feira, 28 de março de 2008 16:04