ah_algorithms.c File Reference

AH algorithm negotiation. More...

#include "ipsec/ipsec.h"
#include "ipsec/ipsec_misc.h"
#include "ah/ah.h"
#include "ah/ah_algorithms.h"
#include "ike/ike_algorithms.h"
#include "hash/hash_algorithms.h"
#include "debug.h"

Go to the source code of this file.

Macros

#define TRACE_LEVEL   AH_TRACE_LEVEL
 

Functions

error_t ahSelectAuthAlgo (IkeChildSaEntry *childSa, uint16_t authAlgoId)
 Select the relevant MAC algorithm. More...
 
error_t ahAddSupportedTransforms (IkeContext *context, IkeProposal *proposal, uint8_t **lastSubstruc)
 Add the supported AH transforms to the proposal. More...
 
error_t ahAddSupportedAuthTransforms (IkeContext *context, IkeProposal *proposal, uint8_t **lastSubstruc)
 Add the supported integrity transforms to the proposal. More...
 
error_t ahAddSupportedEsnTransforms (IkeContext *context, IkeProposal *proposal, uint8_t **lastSubstruc)
 Add the supported ESN transforms to the proposal. More...
 
uint16_t ahSelectAuthTransform (IkeContext *context, const IkeProposal *proposal, size_t proposalLen)
 Integrity transform negotiation. More...
 
uint16_t ahSelectEsnTransform (IkeContext *context, const IkeProposal *proposal, size_t proposalLen)
 ESN transform negotiation. More...
 
error_t ahSelectSaProposal (IkeChildSaEntry *childSa, const IkeSaPayload *payload)
 Select a single proposal. More...
 
error_t ahCheckSaProposal (IkeChildSaEntry *childSa, const IkeSaPayload *payload)
 Check whether the selected proposal is acceptable. More...
 

Detailed Description

AH algorithm negotiation.

License

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

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

This file is part of CycloneIPSEC 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.0

Definition in file ah_algorithms.c.

Macro Definition Documentation

◆ TRACE_LEVEL

#define TRACE_LEVEL   AH_TRACE_LEVEL

Definition at line 32 of file ah_algorithms.c.

Function Documentation

◆ ahAddSupportedAuthTransforms()

error_t ahAddSupportedAuthTransforms ( IkeContext context,
IkeProposal proposal,
uint8_t **  lastSubstruc 
)

Add the supported integrity transforms to the proposal.

Parameters
[in]contextPointer to the IKE context
[in,out]proposalPointer to the Proposal substructure
[in,out]lastSubstrucPointer to the Last Substruc field
Returns
Error code

Definition at line 216 of file ah_algorithms.c.

◆ ahAddSupportedEsnTransforms()

error_t ahAddSupportedEsnTransforms ( IkeContext context,
IkeProposal proposal,
uint8_t **  lastSubstruc 
)

Add the supported ESN transforms to the proposal.

Parameters
[in]contextPointer to the IKE context
[in,out]proposalPointer to the Proposal substructure
[in,out]lastSubstrucPointer to the Last Substruc field
Returns
Error code

Definition at line 246 of file ah_algorithms.c.

◆ ahAddSupportedTransforms()

error_t ahAddSupportedTransforms ( IkeContext context,
IkeProposal proposal,
uint8_t **  lastSubstruc 
)

Add the supported AH transforms to the proposal.

Parameters
[in]contextPointer to the IKE context
[in,out]proposalPointer to the Proposal substructure
[in,out]lastSubstrucPointer to the Last Substruc field
Returns
Error code

Definition at line 186 of file ah_algorithms.c.

◆ ahCheckSaProposal()

error_t ahCheckSaProposal ( IkeChildSaEntry childSa,
const IkeSaPayload payload 
)

Check whether the selected proposal is acceptable.

Parameters
[in]childSaPointer to the Child SA
[in]payloadPointer to the Security Association payload
Returns
Error code

Definition at line 415 of file ah_algorithms.c.

◆ ahSelectAuthAlgo()

error_t ahSelectAuthAlgo ( IkeChildSaEntry childSa,
uint16_t  authAlgoId 
)

Select the relevant MAC algorithm.

Parameters
[in]childSaPointer to the Child SA
[in]authAlgoIdAuthentication algorithm identifier
Returns
Error code

Definition at line 94 of file ah_algorithms.c.

◆ ahSelectAuthTransform()

uint16_t ahSelectAuthTransform ( IkeContext context,
const IkeProposal proposal,
size_t  proposalLen 
)

Integrity transform negotiation.

Parameters
[in]contextPointer to the IKE context
[in]proposalPointer to the Proposal substructure
[in]proposalLenLength of the Proposal substructure, in bytes
Returns
Selected integrity transform, if any

Definition at line 276 of file ah_algorithms.c.

◆ ahSelectEsnTransform()

uint16_t ahSelectEsnTransform ( IkeContext context,
const IkeProposal proposal,
size_t  proposalLen 
)

ESN transform negotiation.

Parameters
[in]contextPointer to the IKE context
[in]proposalPointer to the Proposal substructure
[in]proposalLenLength of the Proposal substructure, in bytes
Returns
Selected ESN transform, if any

Definition at line 293 of file ah_algorithms.c.

◆ ahSelectSaProposal()

error_t ahSelectSaProposal ( IkeChildSaEntry childSa,
const IkeSaPayload payload 
)

Select a single proposal.

Parameters
[in]childSaPointer to the Child SA
[in]payloadPointer to the Security Association payload
Returns
Error code

Definition at line 309 of file ah_algorithms.c.