Como atribuir um certificado de S/MIME para um perfil MAPI para utilização 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Sumário
Este artigo demonstra como programaticamente atribuir um certificado digital a um perfil MAPI para utilizar com o Microsoft Outlook para assinar digitalmente e encriptar correio electrónico. Este artigo aborda a MAPI parte desta tarefa e pressupõe o conhecimento prático das Secure Multipurpose Internet Messaging extensões para o (S/MIME).
Mais Informação
Para atribuir um certificado a um perfil MAPI, siga estes passos:
  1. Obter os hashes tanto o certificado de assinatura do certificado de encriptação. Estes hashes estão no formato binário e pode ser obtidos utilizando a função CertGetCertificateContextProperty da interface de programação da aplicações (API) de criptografia:
    CertGetCertificateContextProperty(pCert, CERT_HASH_PROP_ID, *lpbHash, cbHash);					
  2. Gera um codificado ASN1 S/MIME capacidades binário objectos grandes (BLOB) para os certificados. Para mais informações, consulte o RFC Request for Comments () para S/MIME.
  3. Crie um BLOB para manter as definições de segurança. Cada definição ou propriedade é constituída por uma combinação de código / / dados de comprimento da seguinte forma:

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

    Eis um exemplo:
    0100 0800 01000000Translated:TAG = 1LENGTH = 8 bytesDATA = 1						
    seguem-se as propriedades que tem de 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_DEFAULTS0x00208Máscara de bits:
    0 x 1 = certificado predefinido para S/MIME.
    0 x 2 = certificado predefinido para todos os formatos.
    0 x 4 = certificado enviar mensagem.
    PR_CERT_DISPLAY_NAME_A0x000BVariávelApresentar o nome da definição na interface de utilizador do Outlook (por exemplo, "os meus S/MIME Settings").
    PR_CERT_KEYEX_SHA1_HASH0x0022VariávelBinário hash de certificado de encriptação. Esta propriedade pode ser omitida se pretender permitir apenas a assinatura.
    PR_CERT_SIGN_SHA1_HASH0x0009VariávelBinário hash de certificado de assinatura.
    PR_CERT_ASYMETRIC_CAPS0x0002VariávelASN1 codificado capacidades S/MIME BLOB.

    Tenha em atenção que as propriedades são todas armazenadas numa sequência de bytes contínua.
  4. Utilize a interface IProfAdmin para abrir o perfil MAPI.
  5. Abra a secção de perfil GUID_Dilkie, onde as definições de segurança são armazenadas. Definir GUID_Dilkie da seguinte forma:
    const GUID CDECL GUID_Dilkie = {  0x53bc2ec0, 0xd953, 0x11cd, {0x97, 0x52, 0x00, 0xaa, 0x00, 0x4a, 0xe4, 0x0e}  };					
  6. Passo 5 dá-lhe uma interface IProfSect . Nesta interface, defina a seguinte propriedade:
    #define PR_SECURITY_PROFILES PROP_TAG(PT_MV_BINARY, 0x355)						
    esta propriedade é uma propriedade de binária valores múltiplos. Tem de definir o primeiro valor binário na propriedade com o BLOB que criou no passo 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