我正在尝试创建一个 ecdsa 证书,但我想以编程方式生成它。我正在使用 openssl 和 C 编程。
当我从命令行生成证书时,会要求我回答其他问题以在证书中使用。我想知道如何定义这些问题,以编程方式输入这些数据。
这是我在网上找到的,但我不明白如何插入更多信息,这确实有效:
X509 *x;
x=X509_new();
X509_NAME *name = X509_get_subject_name(x);
X509_set_version(x, 2);
ASN1_INTEGER_set(X509_get_serialNumber(x), 3);
X509_gmtime_adj(X509_get_notBefore(x), 0);
X509_gmtime_adj(X509_get_notAfter(x), (long) 60 * 60 * 24 * 365);
X509_set_pubkey(x, pk);
X509_NAME_add_entry_by_txt(name, "C", MBSTRING_ASC, (const unsigned char*) "PT", -1, -1, 0);
我意识到它的X509_NAME_add_entry_by_txt
功能是国家的答案,但是这个“C”是什么意思?这个函数是怎么组成的?我可以将任何我想要的东西放在“C”和“PT”的位置吗?