[英]programmatically convert an x509 certificate into human readable format using openssl api
[英]Programmatically input data in X509 Certificate using OpenSSL
我正在嘗試創建一個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”的地方嗎?
C
是表示國家的標准方式, PT
是葡萄牙的正確選擇(其他國家/地區選項見此列表 )。
您可以使用X509_NAME_add_entry_by_txt
函數使用正確的前綴在專有名稱中設置其他值:
C
=國家 ST
=狀態 L
=地點 O
=組織 OU
=組織單位 CN
=通用名稱 只有國家/地區字段具有固定的選擇范圍。
另請參見手冊頁上給出的示例: http : //www.openssl.org/docs/crypto/X509_NAME_add_entry_by_txt.html#EXAMPLES
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.