Я хочу повторно использовать SSL_SESSION, поэтому я использую i2d_SSL_SESSION () для его сериализации и d2i_SSL_SESSION для его сериализации.Но d2i_SSL_SESSION не удалось, тестовый код очень прост:
после того, как рукопожатие ssl закончено
SSL_SESSION *session = SSL_get1_session(ssl);
int len = i2d_SSL_SESSION(session, NULL);
unsigned char *pp = new unsigned char[len];
len = i2d_SSL_SESSION(session, &pp);
SSL_SESSION *s_new = d2i_SSL_SESSION(NULL, (const unsigned char **)&pp, len);
ERR_print_errors_fp(stderr);
cout << "s_new = " << s_new << endl;
i2d_SSL_SESSION в порядке, а len = 2205
, но d2i_SSL_SESSIONне удалось, s_new равно NULL, сообщение об ошибке: 3078067960: ошибка: 0D06703D: процедуры кодирования asn1: a2i_ASN1_STRING: ожидание последовательности asn1: ssl_asn1.c: 370: смещение адреса = 3219682277 = 0
Не пропуститьчто-то?