gpt4 book ai didi

c++ - GNUTLS 中的 SNI,什么时候问?

转载 作者:行者123 更新时间:2023-11-28 06:07:42 25 4
gpt4 key购买 nike

因此,我正在尝试在我的 GNUTLS 服务器中实现 SNI。

我的代码:

if(sniCallback != NULL) {
size_t ds = 256;
char data[ds];
unsigned int type = (unsigned int)GNUTLS_NAME_DNS;
int snir = gnutls_server_name_get(sessiond, &data[0], &ds, &type, (unsigned int)0);
data[ds - 1] = 0; // the last one must always be \0
if(snir >= 0) {
jstring js = (*this)->NewStringUTF(this, data);
jlong snicert = (*this)->CallLongMethod(this, sniCallback, (*this)->GetMethodID(this, (*this)->GetObjectClass(this, sniCallback), "getSNICert", "(Ljava/lang/String;)J"), js);
if(snicert > 0L) {
struct cert* oc = (struct cert*)snicert;
gnutls_credentials_set(sessiond, GNUTLS_CRD_CERTIFICATE, oc->cert);
}
} else {
printf("%i\n", snir);
}
}

(不要介意 JNI)

我收到 -56 错误代码,即 GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE,文档将其转换为尚未发送 SNI。我怎么知道我什么时候有 SNI 信息? AKA 我什么时候得到 Client Hello?我是直接从 Chrome 获取的,所以我知道有 SNI。顺便说一下,这就是 NIO。

最佳答案

和我一样的人,答案是:

gnutls_handshake_set_post_client_hello_function

关于c++ - GNUTLS 中的 SNI,什么时候问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32030015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com