OpenSSL の高レベル関数を使用してアプリケーションに暗号化/復号化スキームを実装しているEVP_*()
ため、API 呼び出しを変更することなく、使用する実際のアルゴリズムを簡単に切り替えることができます。
比較的簡単に鍵ペアを作成できます。
// dumbed down, no error checking for brevity
EVP_PKEY * pkey;
// can change EVP_PKEY_RSA to something else here
EVP_PKEY_CTX * context = EVP_PKEY_CTX_new_id( EVP_PKEY_RSA, NULL );
EVP_PKEY_keygen_init( ctx );
// could set parameters here
EVP_PKEY_keygen( context, &pkey );
// ...
EVP_PKEY_CTX_free( context );
pkey
鍵ペア、つまり秘密鍵と公開鍵の両方を保持するようになりました。それは物事の秘密の側面には問題ありませんが、明らかに、物事の公開側で使用するために公開鍵コンポーネントのみを抽出したいと考えています。
RSA 固有の関数を見つけることができましたが、高レベルEVP_*()
API を使用するものはありませんでした。
ヘルプ?