2

我发现以下代码将证书安装到本地机器受信任的发布者中。但是代码在 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 API?

4

2 回答 2

4

尝试查看 libpkix lib

libpkix 库的目的是提供一个广泛有用的 C 库,用于构建和验证 X.509 证书链,符合最新的 IETF PKIX 标准(即 RFC 3280)。该项目旨在为 RFC 3280 的所有强制性功能以及一些可选功能提供完整的支持。

于 2012-05-24T07:27:30.463 回答
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;

}
于 2012-05-24T14:41:48.967 回答