D2I_SSL_SESSION(3ossl)
π
D2I_SSL_SESSION β the 3ossl girlies know what's up
okay so bestie, welcome to the OpenSSL 3ossl corner of the manual universe πΈ this page is literally about turning SSL sessions into bytes and back again. it's giving β¨serializationβ¨ and honestly? iconic.
β¨ NAME β¨
d2i_SSL_SESSION, d2i_SSL_SESSION_ex, i2d_SSL_SESSION β these three are your little converters that flip an SSL_SESSION object from/to its ASN1 representation. π¦
π SYNOPSIS π
#include <openssl/ssl.h>
SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp,
long length);
SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp,
long length, OSSL_LIB_CTX *libctx,
const char *propq);
int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp);
no cap, those signatures are copied character for character so please don't come for me π
π DESCRIPTION π
So these functions decode and encode an SSL_SESSION object. For the deets on the encoding side, go check d2i_X509(3) β it's the whole ASN1 mood board, iykyk. π
Now here's the part where you listen to me, bestie, because this is important π
SSL_SESSION objects keep internal link information about the session cache list, specifically when they're being inserted into one SSL_CTX object's session cache. So β one SSL_SESSION object, regardless of its reference count, must therefore only be used with one SSL_CTX object (and the SSL objects created from this SSL_CTX object).
lowkey a red flag if you ignore this π© one session, one SSL_CTX. periodt. even if the refcount says it's fine, it is NOT fine.
π RETURN VALUES π
d2i_SSL_SESSION()andd2i_SSL_SESSION_ex()β return a pointer to the newly allocatedSSL_SESSIONobject. π«Ά In case of failure theNULL-pointer is returned and the error message can be retrieved from the error stack. (the error stack is where the gossip lives, ngl)i2d_SSL_SESSION()β returns the size of the ASN1 representation in bytes. When the session is not valid,0is returned and no operation is performed. π
π SEE ALSO π
go read those next, bestie, it's called β¨enrichmentβ¨
β HISTORY β
The function d2i_SSL_SESSION_ex() was added in OpenSSL 3.2. not me being the new girl on the block π
πΈ COPYRIGHT πΈ
Copyright 2001-2024 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html>.
and that's the whole page, bestie π§ we ate and left no crumbs π this was 3.5.6 dated 2026-04-07 β catch you on the flippity flip, mwah πβ¨
π¦ where this page comes from
- freebsd 15.1: base 15.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms