Como atribuir um certificado S/MIME para um perfil MAPI para uso com o Outlook

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 312900
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sumário
Este artigo demonstra como programaticamente atribuir um certificado digital a um perfil MAPI para usar com o Microsoft Outlook para assinar digitalmente e criptografar emails. Este artigo aborda a esta tarefa parte MAPI e pressupõe um conhecimento funcional do Secure Multipurpose Internet Messaging Extensions (S/MIME).
Mais Informações
Para atribuir um certificado a um perfil MAPI, execute estas etapas:
  1. Obter os hashes para o certificado de assinatura e seu certificado de criptografia. Esses hashes estão no formato binário e podem ser recuperadas usando a função CertGetCertificateContextProperty da interface de programação de aplicativo (API) do criptografia:
    CertGetCertificateContextProperty(pCert, CERT_HASH_PROP_ID, *lpbHash, cbHash);					
  2. Gere um S/MIME codificada ASN1 recursos binário grande BLOB (objeto) para seus certificados. Para obter mais informações, consulte a RFC Request for Comments () para S/MIME.
  3. Crie um BLOB para manter as configurações de segurança. Cada configuração ou propriedade é composta de uma combinação de TAG, comprimento/DATA da seguinte maneira:

    MARCAIndica a propriedade (consulte a lista abaixo).2 bytes
    COMPRIMENTOIndica o comprimento total de propriedade, incluindo a marca e o comprimento de bytes.2 bytes
    DADOSContém os dados.Comprimento variável

    Aqui está um exemplo:
    0100 0800 01000000Translated:TAG = 1LENGTH = 8 bytesDATA = 1						
    aqui são as propriedades que você deve incluir o BLOB:

    PropriedadeValor numéricoComprimentoDescrição
    PR_CERT_PROP_VERSION0x00018Reservado, sempre 1.
    PR_CERT_MESSAGE_ENCODING0x00068Tipo de codificação (S/MIME = 1).
    PR_CERT_DEFAULTS0 x 00208Máscara de bits:
    0 x 1 = certificado padrão de S/MIME.
    0 x 2 = certificado padrão para todos os formatos.
    0 x 4 = certificado enviar mensagem.
    PR_CERT_DISPLAY_NAME_A0x000BVariávelExibir nome da configuração na interface do usuário do Outlook (por exemplo, "Minhas configurações S/MIME").
    PR_CERT_KEYEX_SHA1_HASH0x0022VariávelBinário hash de certificado de criptografia. Essa propriedade pode ser omitida se você deseja permitir que somente a assinatura.
    PR_CERT_SIGN_SHA1_HASH0x0009VariávelBinário hash de certificado de assinatura.
    PR_CERT_ASYMETRIC_CAPS0x0002VariávelCodificado em ASN1 S/MIME recursos BLOB.

    Observe que as propriedades são todas armazenadas em um fluxo contínuo de bytes.
  4. Use a interface IProfAdmin para abrir o perfil MAPI.
  5. Abra a seção de perfil GUID_Dilkie, onde as configurações de segurança são armazenadas. Definir GUID_Dilkie da seguinte maneira:
    const GUID CDECL GUID_Dilkie = {  0x53bc2ec0, 0xd953, 0x11cd, {0x97, 0x52, 0x00, 0xaa, 0x00, 0x4a, 0xe4, 0x0e}  };					
  6. Etapa 5 oferece uma interface IProfSect . Nesta interface, defina a seguinte propriedade:
    #define PR_SECURITY_PROFILES PROP_TAG(PT_MV_BINARY, 0x355)						
    essa propriedade é uma propriedade binária com valores múltiplos. Você deve definir o primeiro valor binário na propriedade com o BLOB que você criou na etapa 3.
    LPPROFSECT          lpProfSect = NULL;SPropValue          SecProp;LPSPropValue        lpSecProp = &SecProp;SBinary             sbCert;LPBYTE              lpbCertBlob = NULL;ULONG               cbCertBlob = 0;// Do the work to generate lpbCertBlob (step 3) and open GUID_Dilkie profile section.// Set up property tag structure for PR_SECURITY_PROFILES.SecProp.ulPropTag = PR_SECURITY_PROFILES;SecProp.Value.MVbin.cValues = 1;SecProp.Value.MVbin.lpbin = &sbCert;SecProp.Value.MVbin.lpbin[0].cb = cbCertBlob;SecProp.Value.MVbin.lpbin[0].lpb = lpbCertBlob;// Set properties on the profile section.if (FAILED(hRes = lpProfSect->SetProps(1, lpSecProp, NULL))){    printf("Error setting property on profile.\n");    goto error;}					

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 312900 - Última Revisão: 12/07/2015 08:11:22 - Revisão: 2.5

Microsoft Outlook 2000, Microsoft Outlook 2002 Standard Edition, Microsoft Messaging Application Programming Interface

  • kbnosurvey kbarchive kbmt kbhowto kbmsg KB312900 KbMtpt
Comentários