D2I_SSL_SESSION(3ossl)

πŸ“¦
version 15.1 Β· 2 versions
, in freebsd 15.1

πŸ’… 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() and d2i_SSL_SESSION_ex() β€” return a pointer to the newly allocated SSL_SESSION object. 🫢 In case of failure the NULL-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, 0 is 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 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