4

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」には、何を入れてもいいですか?

4

1 に答える 1

5

これ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

于 2013-03-11T07:59:08.163 に答える