Avatar billede jakobdo Ekspert
19. januar 2004 - 16:38 Der er 4 kommentarer og
1 løsning

Importere certifikat.

Hej,
hvordan importere jeg et certifikat via C++?
Jeg kan åbne system store, og finde alle certifikater.
Nu er jeg dog i tvivl om hvordan jeg tilføjer/importere et certifikat. Skal jeg først bruge:

CertCreateCertificateContext()
Og i giver fald, hvad så bagefter?
Avatar billede arne_v Ekspert
19. januar 2004 - 16:49 #1
Platform ? Compiler ? Anvendelse ?
Avatar billede jakobdo Ekspert
20. januar 2004 - 08:34 #2
Windows, Borland, importere et nyt certifikat til min computer...
Avatar billede jakobdo Ekspert
20. januar 2004 - 13:58 #3
Hej Arne,
jeg har dette certifikat:

-----BEGIN CERTIFICATE-----
MIIDgzCCAuygAwIBAgIQJUuKhThCzONY+MXdriJupDANBgkqhkiG9w0BAQUFADBf
MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT
LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
HhcNOTcwNDE3MDAwMDAwWhcNMTExMDI0MjM1OTU5WjCBujEfMB0GA1UEChMWVmVy
aVNpZ24gVHJ1c3QgTmV0d29yazEXMBUGA1UECxMOVmVyaVNpZ24sIEluYy4xMzAx
BgNVBAsTKlZlcmlTaWduIEludGVybmF0aW9uYWwgU2VydmVyIENBIC0gQ2xhc3Mg
MzFJMEcGA1UECxNAd3d3LnZlcmlzaWduLmNvbS9DUFMgSW5jb3JwLmJ5IFJlZi4g
TElBQklMSVRZIExURC4oYyk5NyBWZXJpU2lnbjCBnzANBgkqhkiG9w0BAQEFAAOB
jQAwgYkCgYEA2IKA6NYZAn0fhRg5JaJlK+G/1AXTvOY2O6rwTGxbtueqPHNFVbLx
veqXQu2aNAoV1Klc9UAl3dkHwTKydWzEyruj/lYncUOqY/UwPpMo5frxCTvzt01O
OfdcSVq4wR3Tsor+cDCVQsv+K1GLWjw6+SJPkLICp1OcTzTnqwSye28CAwEAAaOB
4zCB4DAPBgNVHRMECDAGAQH/AgEAMEQGA1UdIAQ9MDswOQYLYIZIAYb4RQEHAQEw
KjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL0NQUzA0BgNV
HSUELTArBggrBgEFBQcDAQYIKwYBBQUHAwIGCWCGSAGG+EIEAQYKYIZIAYb4RQEI
ATALBgNVHQ8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgEGMDEGA1UdHwQqMCgwJqAk
oCKGIGh0dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMA0GCSqGSIb3DQEB
BQUAA4GBAAgB7ORolANC8XPxI6I63unx2sZUxCM+hurPajozq+qcBBQHNgYL+Yhv
1RPuKSvD5HKNRO3RrCAJLeH24RkFOLA9D59/+J4C3IYChmFOJl9en5IeDCSk9dBw
E88mw0M9SR2egi5SX7w+xmYpAY5Okiy8RnUDgqxz6dl+C2fvVFIa
-----END CERTIFICATE-----

og i stedet for at bruge MMC, så vil jeg importere det med C++. Har du ikke lige et par guldkorn til mig?
Avatar billede jakobdo Ekspert
29. januar 2004 - 13:29 #4
Følgende gjorde det...
Og certifikatet var først base64decodet...

bool funCert()
{
    //--------------------------------------------------------------------
    // Declare and initialize variables.
    HCERTSTORE hSysStore;
    PCCERT_CONTEXT pCertContext = NULL;
    DWORD dwCertSize=  906;
   
    bool bErr = false;

    //--------------------------------------------------------------------
    // Open a system certificate store.
    hSysStore = CertOpenStore(
  CERT_STORE_PROV_SYSTEM,          // The store provider type
  0,                              // The encoding type is not needed
  NULL,                            // Use the default HCRYPTPROV
  CERT_SYSTEM_STORE_LOCAL_MACHINE, // Set the store location in a registry location
  L"CA"                                       // The store name as a Unicode string
  );
   
    if(!hSysStore)
    {
        return false;
    }

    pCertContext = CertCreateCertificateContext(
      MY_ENCODING_TYPE  ,      // encoding type
        //PKCS_7_ASN_ENCODING,
      pDecodeCert,                                      // encoded data from
                              //  the certificate retrieved
      dwCertSize);                      // length of the encoded data
  if(!pCertContext)
      error();

    bErr = CertAddCertificateContextToStore(
      hSysStore,
      pCertContext,
      CERT_STORE_ADD_NEW,
      NULL);
  if (!bErr)
      error();
  else
  {
      printf("A new certificate has been added.\n");
    }
   
    //--------------------------------------------------------------------
    //Close Cert Store.
    if (hSysStore)
    {
        bErr = CertCloseStore(hSysStore, CERT_CLOSE_STORE_CHECK_FLAG);
        if (!bErr)
            return false;
    }
    return true;
}
Avatar billede jakobdo Ekspert
29. januar 2004 - 13:29 #5
Svar...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester