2017-11-20 9 views
0

私はクライアントのhelloでカスタムクライアント拡張を取得しようとしていましたが、get_custom_extなどのメソッドを発行する方法はわかりません。クライアントで追加されたOpenSSLカスタム拡張を取得する

まず、私たちは今、クライアントがこんにちは、すべてのクライアント上で1つの拡張子を追加しますが、どのようにサーバーが正常にカスタム追加拡張を得ることができるSSL_CTX_set_custom_cli_ext

int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned int ext_type, 
              custom_ext_add_cb add_cb, 
              custom_ext_free_cb free_cb, void *add_arg, 
              custom_ext_parse_cb parse_cb, 
              void *parse_arg) 

と、クライアント側の拡張子を追加しますか?

答えて

0

サーバーに同じカスタム拡張を登録して、クライアントが拡張機能を提案したかどうかを検出するためにadd_cbコールバックを呼び出すかどうかを判断できるようです。 ServerHelloとEncryptedExtensionメッセージについて

のみ場合、指定 コンテキストの要件が満たされていると対応する拡張子が のClientHelloで受信された場合、すべての登録 add_cbが一度呼び出されます。つまり、対応する拡張が で受信されなかった場合、ClientHelloはadd_cbが呼び出されません。 (https://www.openssl.org/docs/manmaster/man3/SSL_CTX_add_server_custom_ext.html#EXTENSION-CALLBACKS

すなわち、対応する

int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned int ext_type, 
            custom_ext_add_cb add_cb, 
            custom_ext_free_cb free_cb, void *add_arg, 
            custom_ext_parse_cb parse_cb, 
            void *parse_arg); 

を行うと、この接続は、カスタム拡張を使用したことを示すために、あなたのadd_cbコールバックマークコンテキスト(または他のデータ構造)をしましょう。

+0

コールバックを使用する正しいサイクルを実装しようとしていますが、そのように見えるように見えます。 – Mzdp

関連する問題