1

openssl を使用して DTLS クライアント サーバー プログラムを作成しています。プログラムは正常に動作しますが、SSL ハンドシェイク後に暗号署名を取得する方法が見つかりません。

SSL ハンドシェイク後とは、クライアント側で次のことを意味します。

if (SSL_connect(ssl) <= 0)
{
    //error handling 
}

サーバー側では、後:

do 
{
    ret = SSL_accept(ssl);
} while (ret == 0);

実際の暗号署名はsha256WithRSAEncryptionキャプチャされた DTLS パケットからのものであることがわかりますが、openssl からこの情報を取得するにはどうすればよいですか?

DTLS プロトコルを使用していますが、コードは TLS/SSL とほぼ同じであることに注意してください。

4

1 に答える 1

0

使用される暗号アルゴリズムは、証明書に格納されます。したがって、証明書 (x509) がある場合は、暗号アルゴリズムの種類を抽出できます。数値バージョンのみ:

X509_get_signature_type(client_cert)

人間が読める文字列を取得するには、前の関数の戻り値を次のように変換します。

OBJ_nid2ln(X509_get_signature_type(client_cert))
于 2013-10-16T07:52:06.200 に答える