我希望能够在命令行中使用 openssl 生成密钥对私钥和公钥,但我不知道该怎么做。到目前为止我所做的是执行以下命令行,但这只会向我打印这个,我不知道它到底是什么:s
FROM OPENSSL PAGE:使用显式参数创建 EC 参数:
openssl ecparam -out ec_param.pem -name prime192v1 -param_enc explicit
-----BEGIN EC PARAMETERS-----
MIHHAgEBMCQGByqGSM49AQECGQD////////////////////+//////////8wSwQY
/////////////////////v/////////8BBhkIQUZ5ZyA5w+n6atyJDBJ/rje7MFG
ubEDFQAwRa5vyEIvZO1XlSjTgSDq4SGW1QQxBBiNqA6wMJD2fL8g60OhiAD0/wr9
gv8QEgcZK5X/yNp4YxAR7WskzdVz+XehHnlIEQIZAP///////////////5ne+DYU
a8mxtNIoMQIBAQ==
-----END EC PARAMETERS-----
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何得到这样的东西:
//-----------------Generated Key Pair----------------------------------//
char privkey[]=
"-----BEGIN EC PARAMETERS-----\n"
"BgUrgQQACQ==\n"
"-----END EC PARAMETERS-----\n"
"-----BEGIN EC PRIVATE KEY-----\n"
"MFACAQEEFI9sfpfTk0YlZx8JaCZnLsy4T6HYoAcGBSuBBAAJoSwDKgAEIlzYflxD\n"
"0396M0i6dGfSY3khTU7kiNyEv/B1EoyGmqvH7tjhSmpP1A==\n"
"-----END EC PRIVATE KEY-----\n";
char pubkey[] =
"-----BEGIN PUBLIC KEY-----\n"
"MD4wEAYHKoZIzj0CAQYFK4EEAAkDKgAEIlzYflxD0396M0i6dGfSY3khTU7kiNyE\n"
"v/B1EoyGmqvH7tjhSmpP1A==\n"
"-----END PUBLIC KEY-----\n";
//---------------------------------------------------------------------//
Run Code Online (Sandbox Code Playgroud)
我从在线获得的代码中得到了这个,该代码使用此密钥对与 ECDSA 签署消息,但现在我希望能够生成我自己的密钥对(从 openssl 命令行)并在这样的代码中使用它,以为我更改此密钥对。
就我而言,我想使用 NIST P225,即“prime256v1”。
有人能帮我吗?
谢谢,最好的问候
我有X509格式的证书.这是函数中的输入参数.我想要做的是验证证书的有效性.怎么做到呢?
X509_verify_cert();
Run Code Online (Sandbox Code Playgroud)
我找到了这个功能,但这不接受X509*证书,它接受X509_store而我只有一个X509.
最诚挚的问候.
我正在尝试创建 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);
Run Code Online (Sandbox Code Playgroud)
我意识到这个X509_NAME_add_entry_by_txt函数是国家的答案,但是这个“C”是什么意思呢?这个函数是怎么组成的呢?我可以在“C”位置和“PT”位置放置任何我想要的东西吗?
我正在读一个使用openSSL生成的.crt证书.我在X509文件中的C程序中有证书.我想知道我刚读过的整个证书的大小.这怎么可能?是否有返回证书大小的特定函数?
谢谢最诚挚的问候