2012-05-24 3 views
2

Я нашел приведенный ниже код для установки сертификата на доверенный издатель на локальных компьютерах. Но код находится в C#. Я хочу, чтобы это было сделано на C. Как преобразовать это в C?C эквивалент кода C# для установки сертификата

private static void InstallCertificate(string cerFileName) 
{ 
    X509Certificate2 certificate = new X509Certificate2(cerFileName); 
    X509Store store = new X509Store(StoreName.TrustedPublisher,StoreLocation.LocalMachine); 
    store.Open(OpenFlags.ReadWrite); 
    store.Add(certificate); 
    store.Close(); 
} 

Доступна любая Windows APIS?

+0

Я нашел код в этой ссылке http://stackoverflow.com/questions/566570/how-can-i-install-a-certificate-into-the -local-machine-store-programatically-us? answertab = active # tab-top, я намерен сделать то же самое, но с программированием на C. – 2vision2

ответ

4

Попробуйте посмотреть на libpkix lib

Целью библиотеки libpkix является обеспечение широко полезной C библиотеки для построения и проверки цепочки сертификатов X.509, соответствует последним стандартам IETF PKIX (а именно, RFC 3280). Проект призван обеспечить полную поддержку всех обязательных функций RFC 3280, а также ряд дополнительных функций.

+0

Мне нужно использовать его в моем коде, и это похоже на его разработанный sunmicrosyste ... Это с открытым исходным кодом ?? – 2vision2

+0

http://libpkix.sourceforge.net/license.txt –

2

попробовать этот пример:

#include <openssl/ssl.h> 
static int store_cert(SSL_CTX * ctx, X509 * cert) 
{ 
    X509_STORE * x509_store; 

    x509_store=SSL_CTX_get_cert_store(ctx); 

    if (X509_STORE_add_cert(x509_store, cert)==0) 
    { 
     printf("ERROR: add certificate\n"); 
     return 0; 
    } 
    return 1; 

} 
+0

SSL_CTX_get_cert_store ?? где эта функция определена? – 2vision2

+0

SSL_CTX_get_cert_store находится в библиотеке libssl, X509_STORE_add_cert находится в библиотеке libcrypto –