manpagez: man pages & more
man SSL_get_stream_id(3)
Home | html | info | man
SSL_GET_STREAM_ID(3ossl)            OpenSSL           SSL_GET_STREAM_ID(3ossl)



NAME

       SSL_get_stream_id, SSL_get_stream_type, SSL_STREAM_TYPE_NONE,
       SSL_STREAM_TYPE_READ, SSL_STREAM_TYPE_WRITE, SSL_STREAM_TYPE_BIDI,
       SSL_is_stream_local - get QUIC stream ID and stream type information


SYNOPSIS

        #include <openssl/ssl.h>

        uint64_t SSL_get_stream_id(SSL *ssl);

        #define SSL_STREAM_TYPE_NONE
        #define SSL_STREAM_TYPE_BIDI
        #define SSL_STREAM_TYPE_READ
        #define SSL_STREAM_TYPE_WRITE
        int SSL_get_stream_type(SSL *ssl);

        int SSL_is_stream_local(SSL *ssl);


DESCRIPTION

       The SSL_get_stream_id(3) function returns the QUIC stream ID for a QUIC
       stream SSL object, or for a QUIC connection SSL object which has a
       default stream attached.

       The SSL_get_stream_type() function identifies what operations can be
       performed on the stream, and returns one of the following values:

       SSL_STREAM_TYPE_NONE
           The SSL object is a QUIC connection SSL object without a default
           stream attached.

       SSL_STREAM_TYPE_BIDI
           The SSL object is a non-QUIC SSL object, or is a QUIC stream object
           (or QUIC connection SSL object with a default stream attached), and
           that stream is a bidirectional QUIC stream.

       SSL_STREAM_TYPE_READ
           The SSL object is a QUIC stream object (or QUIC connection SSL
           object with a default stream attached), and that stream is a
           unidirectional QUIC stream which was initiated by the remote peer;
           thus, it can be read from, but not written to.

       SSL_STREAM_TYPE_WRITE
           The SSL object is a QUIC stream object (or QUIC connection SSL
           object with a default stream attached), and that stream is a
           unidirectional QUIC stream which was initiated by the local
           application; thus, it can be written to, but not read from.

       The SSL_is_stream_local() function determines whether a stream was
       locally created.


NOTES

       While QUICv1 assigns specific meaning to the low two bits of a QUIC
       stream ID, QUIC stream IDs in future versions of QUIC are not required
       to have the same semantics. Do not determine stream properties using
       these bits. Instead, use SSL_get_stream_type() to determine the stream
       type and SSL_get_stream_is_local() to determine the stream initiator.

       The SSL_get_stream_type() identifies the type of a QUIC stream based on
       its identity, and does not indicate whether an operation can currently
       be successfully performed on a stream. For example, you might locally
       initiate a unidirectional stream, write to it, and then conclude the
       stream using SSL_stream_conclude(3), meaning that it can no longer be
       written to, but SSL_get_stream_type() would still return
       SSL_STREAM_TYPE_WRITE. The value returned by SSL_get_stream_type() does
       not vary over the lifespan of a stream.


RETURN VALUES

       SSL_get_stream_id(3) returns a QUIC stream ID, or UINT64_MAX if called
       on an SSL object which is not a QUIC SSL object, or if called on a QUIC
       connection SSL object without a default stream attached. Note that
       valid QUIC stream IDs are always below 2**62.

       SSL_get_stream_type() returns one of the SSL_STREAM_TYPE values.

       SSL_is_stream_local() returns 1 if called on a QUIC stream SSL object
       which represents a stream which was locally initiated. It returns 0 if
       called on a QUIC stream SSL object which represents a stream which was
       remotely initiated by a peer, and -1 if called on any other kind of SSL
       object.


SEE ALSO

       SSL_new_stream(3), SSL_accept_stream(3)


HISTORY

       These functions were added in OpenSSL 3.2.


COPYRIGHT

       Copyright 2002-2023 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>.

3.3.2                             2024-09-04          SSL_GET_STREAM_ID(3ossl)

openssl 3.3.2 - Generated Wed Sep 25 18:47:03 CDT 2024
© manpagez.com 2000-2024
Individual documents may contain additional copyright information.