次のコマンドを使用して公開鍵ファイルを作成しました。
openssl genrsa -out mykey.pem 2046
openssl rsa -in mykey.pem -pubout > mykey.pub
次に、いくつかの C コードから読み取ります。
public_key = PEM_read_RSA_PUBKEY(fp, NULL, NULL, NULL);
次に、この公開鍵の DER 形式を取得します。
int len = i2d_RSAPublicKey (public_key, NULL);
buf = (unsigned char *) malloc (len);
i2d_RSAPublicKey (public_key, &buf);
ここで長さ == 269
しかし、コマンドラインopensslは私に教えてくれます:
openssl rsa -outform der -pubin -inform pem -in mykey.pub | wc
writing RSA key
1 10 293
openssl と C コードから DER フォームを出力すると、明らかに一致せず、奇妙なことに、C コードが取得する DER には多くのゼロがあります。
私は何が間違っているのでしょうか?