tls13_server_extensions.c File Reference

Formatting and parsing of extensions (TLS 1.3 server) More...

#include "tls.h"
#include "tls_misc.h"
#include "tls13_server_extensions.h"
#include "tls13_server_misc.h"
#include "tls13_ticket.h"
#include "debug.h"

Go to the source code of this file.

Macros

#define TRACE_LEVEL   TLS_TRACE_LEVEL
 

Functions

error_t tls13FormatServerSupportedVersionsExtension (TlsContext *context, uint8_t *p, size_t *written)
 Format SupportedVersions extension. More...
 
error_t tls13FormatSelectedGroupExtension (TlsContext *context, uint8_t *p, size_t *written)
 Format KeyShare extension (HelloRetryRequest message) More...
 
error_t tls13FormatServerKeyShareExtension (TlsContext *context, uint8_t *p, size_t *written)
 Format KeyShare extension (ServerHello message) More...
 
error_t tls13FormatServerPreSharedKeyExtension (TlsContext *context, uint8_t *p, size_t *written)
 Format PreSharedKey extension. More...
 
error_t tls13FormatServerEarlyDataExtension (TlsContext *context, TlsMessageType msgType, uint8_t *p, size_t *written)
 Format EarlyData extension. More...
 
error_t tls13ParseClientKeyShareExtension (TlsContext *context, const Tls13KeyShareList *keyShareList, const TlsSupportedGroupList *groupList)
 Parse KeyShare extension. More...
 
error_t tls13ParsePskKeModesExtension (TlsContext *context, const Tls13PskKeModeList *pskKeModeList)
 Parse PskKeyExchangeModes extension. More...
 
error_t tls13ParseClientPreSharedKeyExtension (TlsContext *context, const TlsClientHello *clientHello, size_t clientHelloLen, const Tls13PskIdentityList *identityList, const Tls13PskBinderList *binderList)
 Parse PreSharedKey extension. More...
 
error_t tls13ParseClientEarlyDataExtension (TlsContext *context, const TlsExtension *earlyDataIndication)
 Parse EarlyData extension. More...
 

Detailed Description

Formatting and parsing of extensions (TLS 1.3 server)

License

SPDX-License-Identifier: GPL-2.0-or-later

Copyright (C) 2010-2024 Oryx Embedded SARL. All rights reserved.

This file is part of CycloneSSL Open.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Author
Oryx Embedded SARL (www.oryx-embedded.com)
Version
2.4.4

Definition in file tls13_server_extensions.c.

Macro Definition Documentation

◆ TRACE_LEVEL

#define TRACE_LEVEL   TLS_TRACE_LEVEL

Definition at line 32 of file tls13_server_extensions.c.

Function Documentation

◆ tls13FormatSelectedGroupExtension()

error_t tls13FormatSelectedGroupExtension ( TlsContext context,
uint8_t *  p,
size_t *  written 
)

Format KeyShare extension (HelloRetryRequest message)

Parameters
[in]contextPointer to the TLS context
[in]pOutput stream where to write the KeyShare extension
[out]writtenTotal number of bytes that have been written
Returns
Error code

Definition at line 108 of file tls13_server_extensions.c.

◆ tls13FormatServerEarlyDataExtension()

error_t tls13FormatServerEarlyDataExtension ( TlsContext context,
TlsMessageType  msgType,
uint8_t *  p,
size_t *  written 
)

Format EarlyData extension.

Parameters
[in]contextPointer to the TLS context
[in]msgTypeHandshake message type
[in]pOutput stream where to write the EarlyData extension
[out]writtenTotal number of bytes that have been written
Returns
Error code

Definition at line 343 of file tls13_server_extensions.c.

◆ tls13FormatServerKeyShareExtension()

error_t tls13FormatServerKeyShareExtension ( TlsContext context,
uint8_t *  p,
size_t *  written 
)

Format KeyShare extension (ServerHello message)

Parameters
[in]contextPointer to the TLS context
[in]pOutput stream where to write the KeyShare extension
[out]writtenTotal number of bytes that have been written
Returns
Error code

Definition at line 156 of file tls13_server_extensions.c.

◆ tls13FormatServerPreSharedKeyExtension()

error_t tls13FormatServerPreSharedKeyExtension ( TlsContext context,
uint8_t *  p,
size_t *  written 
)

Format PreSharedKey extension.

Parameters
[in]contextPointer to the TLS context
[in]pOutput stream where to write the PreSharedKey extension
[out]writtenTotal number of bytes that have been written
Returns
Error code

Definition at line 293 of file tls13_server_extensions.c.

◆ tls13FormatServerSupportedVersionsExtension()

error_t tls13FormatServerSupportedVersionsExtension ( TlsContext context,
uint8_t *  p,
size_t *  written 
)

Format SupportedVersions extension.

Parameters
[in]contextPointer to the TLS context
[in]pOutput stream where to write the SupportedVersions extension
[out]writtenTotal number of bytes that have been written
Returns
Error code

Definition at line 55 of file tls13_server_extensions.c.

◆ tls13ParseClientEarlyDataExtension()

error_t tls13ParseClientEarlyDataExtension ( TlsContext context,
const TlsExtension earlyDataIndication 
)

Parse EarlyData extension.

Parameters
[in]contextPointer to the TLS context
[in]earlyDataIndicationPointer to the EarlyData extension
Returns
Error code

Definition at line 878 of file tls13_server_extensions.c.

◆ tls13ParseClientKeyShareExtension()

error_t tls13ParseClientKeyShareExtension ( TlsContext context,
const Tls13KeyShareList keyShareList,
const TlsSupportedGroupList groupList 
)

Parse KeyShare extension.

Parameters
[in]contextPointer to the TLS context
[in]keyShareListPointer to the KeyShare extension
[in]groupListPointer to the SupportedGroups extension
Returns
Error code

Definition at line 414 of file tls13_server_extensions.c.

◆ tls13ParseClientPreSharedKeyExtension()

error_t tls13ParseClientPreSharedKeyExtension ( TlsContext context,
const TlsClientHello clientHello,
size_t  clientHelloLen,
const Tls13PskIdentityList identityList,
const Tls13PskBinderList binderList 
)

Parse PreSharedKey extension.

Parameters
[in]contextPointer to the TLS context
[in]clientHelloPointer to the ClientHello message
[in]clientHelloLenLength of the ClientHello message
[in]identityListList of the identities that the client is willing to negotiate with the server
[in]binderListList of HMAC values, one for each PSK offered in the PreSharedKey extension
Returns
Error code

Definition at line 698 of file tls13_server_extensions.c.

◆ tls13ParsePskKeModesExtension()

error_t tls13ParsePskKeModesExtension ( TlsContext context,
const Tls13PskKeModeList pskKeModeList 
)

Parse PskKeyExchangeModes extension.

Parameters
[in]contextPointer to the TLS context
[in]pskKeModeListPointer to the PskKeyExchangeModes extension
Returns
Error code

Definition at line 596 of file tls13_server_extensions.c.