ssh_signature.h File Reference

RSA/DSA/ECDSA/EdDSA signature generation and verification. More...

#include "ssh/ssh.h"

Go to the source code of this file.

Data Structures

struct  SshEcdsaSignature
 ECDSA signature. More...
 

Functions

error_t sshGenerateSignature (SshConnection *connection, const char_t *publicKeyAlgo, const SshHostKey *hostKey, const SshBinaryString *sessionId, const SshBinaryString *message, uint8_t *p, size_t *written)
 Signature generation. More...
 
error_t sshGenerateRsaSignature (SshConnection *connection, const char_t *publicKeyAlgo, const SshHostKey *hostKey, const SshBinaryString *sessionId, const SshBinaryString *message, uint8_t *p, size_t *written)
 RSA signature generation. More...
 
error_t sshGenerateDsaSignature (SshConnection *connection, const char_t *publicKeyAlgo, const SshHostKey *hostKey, const SshBinaryString *sessionId, const SshBinaryString *message, uint8_t *p, size_t *written)
 DSA signature generation. More...
 
error_t sshGenerateEcdsaSignature (SshConnection *connection, const char_t *publicKeyAlgo, const SshHostKey *hostKey, const SshBinaryString *sessionId, const SshBinaryString *message, uint8_t *p, size_t *written)
 ECDSA signature generation. More...
 
error_t sshGenerateEd25519Signature (SshConnection *connection, const char_t *publicKeyAlgo, const SshHostKey *hostKey, const SshBinaryString *sessionId, const SshBinaryString *message, uint8_t *p, size_t *written)
 Ed25519 signature generation. More...
 
error_t sshGenerateEd448Signature (SshConnection *connection, const char_t *publicKeyAlgo, const SshHostKey *hostKey, const SshBinaryString *sessionId, const SshBinaryString *message, uint8_t *p, size_t *written)
 Ed448 signature generation. More...
 
error_t sshVerifySignature (SshConnection *connection, const SshString *publicKeyAlgo, const SshBinaryString *publicKey, const SshBinaryString *sessionId, const SshBinaryString *message, const SshBinaryString *signature)
 Signature verification. More...
 
error_t sshVerifyRsaSignature (const SshString *publicKeyAlgo, const SshBinaryString *publicKeyBlob, const SshBinaryString *sessionId, const SshBinaryString *message, const SshBinaryString *signatureBlob)
 RSA signature verification. More...
 
error_t sshVerifyDsaSignature (const SshString *publicKeyAlgo, const SshBinaryString *publicKeyBlob, const SshBinaryString *sessionId, const SshBinaryString *message, const SshBinaryString *signatureBlob)
 DSA signature verification. More...
 
error_t sshVerifyEcdsaSignature (const SshString *publicKeyAlgo, const SshBinaryString *publicKeyBlob, const SshBinaryString *sessionId, const SshBinaryString *message, const SshBinaryString *signatureBlob)
 ECDSA signature verification. More...
 
error_t sshVerifyEd25519Signature (const SshString *publicKeyAlgo, const SshBinaryString *publicKeyBlob, const SshBinaryString *sessionId, const SshBinaryString *message, const SshBinaryString *signatureBlob)
 Ed25519 signature verification. More...
 
error_t sshVerifyEd448Signature (const SshString *publicKeyAlgo, const SshBinaryString *publicKeyBlob, const SshBinaryString *sessionId, const SshBinaryString *message, const SshBinaryString *signatureBlob)
 Ed448 signature verification. More...
 
error_t sshFormatEcdsaSignature (const SshEcdsaSignature *signature, uint8_t *p, size_t *written)
 Format an ECDSA signature. More...
 
error_t sshParseEcdsaSignature (const uint8_t *data, size_t length, SshEcdsaSignature *signature)
 Parse an ECDSA signature. More...
 

Detailed Description

RSA/DSA/ECDSA/EdDSA signature generation and verification.

License

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

Copyright (C) 2019-2023 Oryx Embedded SARL. All rights reserved.

This file is part of CycloneSSH 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.2.2

Definition in file ssh_signature.h.

Function Documentation

◆ sshFormatEcdsaSignature()

error_t sshFormatEcdsaSignature ( const SshEcdsaSignature signature,
uint8_t *  p,
size_t *  written 
)

Format an ECDSA signature.

Parameters
[in]signatureECDSA signature
[out]pOutput stream where to write the ECDSA signature
[out]writtenTotal number of bytes that have been written
Returns
Error code

Definition at line 1587 of file ssh_signature.c.

◆ sshGenerateDsaSignature()

error_t sshGenerateDsaSignature ( SshConnection connection,
const char_t publicKeyAlgo,
const SshHostKey hostKey,
const SshBinaryString sessionId,
const SshBinaryString message,
uint8_t *  p,
size_t *  written 
)

DSA signature generation.

Parameters
[in]connectionPointer to the SSH connection
[in]publicKeyAlgoPublic key algorithm
[in]hostKeyPointer to the signer's host key
[in]sessionIdSession identifier (optional parameter)
[in]messagePointer to the message to be signed
[out]pOutput stream where to write the signature
[out]writtenTotal number of bytes that have been written
Returns
Error code

Definition at line 334 of file ssh_signature.c.

◆ sshGenerateEcdsaSignature()

error_t sshGenerateEcdsaSignature ( SshConnection connection,
const char_t publicKeyAlgo,
const SshHostKey hostKey,
const SshBinaryString sessionId,
const SshBinaryString message,
uint8_t *  p,
size_t *  written 
)

ECDSA signature generation.

Parameters
[in]connectionPointer to the SSH connection
[in]publicKeyAlgoPublic key algorithm
[in]hostKeyPointer to the signer's host key
[in]sessionIdSession identifier (optional parameter)
[in]messagePointer to the message to be signed
[out]pOutput stream where to write the signature
[out]writtenTotal number of bytes that have been written
Returns
Error code

Definition at line 444 of file ssh_signature.c.

◆ sshGenerateEd25519Signature()

error_t sshGenerateEd25519Signature ( SshConnection connection,
const char_t publicKeyAlgo,
const SshHostKey hostKey,
const SshBinaryString sessionId,
const SshBinaryString message,
uint8_t *  p,
size_t *  written 
)

Ed25519 signature generation.

Parameters
[in]connectionPointer to the SSH connection
[in]publicKeyAlgoPublic key algorithm
[in]hostKeyPointer to the signer's host key
[in]sessionIdSession identifier (optional parameter)
[in]messagePointer to the message to be signed
[out]pOutput stream where to write the signature
[out]writtenTotal number of bytes that have been written
Returns
Error code

Definition at line 609 of file ssh_signature.c.

◆ sshGenerateEd448Signature()

error_t sshGenerateEd448Signature ( SshConnection connection,
const char_t publicKeyAlgo,
const SshHostKey hostKey,
const SshBinaryString sessionId,
const SshBinaryString message,
uint8_t *  p,
size_t *  written 
)

Ed448 signature generation.

Parameters
[in]connectionPointer to the SSH connection
[in]publicKeyAlgoPublic key algorithm
[in]hostKeyPointer to the signer's host key
[in]sessionIdSession identifier (optional parameter)
[in]messagePointer to the message to be signed
[out]pOutput stream where to write the signature
[out]writtenTotal number of bytes that have been written
Returns
Error code

Definition at line 708 of file ssh_signature.c.

◆ sshGenerateRsaSignature()

error_t sshGenerateRsaSignature ( SshConnection connection,
const char_t publicKeyAlgo,
const SshHostKey hostKey,
const SshBinaryString sessionId,
const SshBinaryString message,
uint8_t *  p,
size_t *  written 
)

RSA signature generation.

Parameters
[in]connectionPointer to the SSH connection
[in]publicKeyAlgoPublic key algorithm
[in]hostKeyPointer to the signer's host key
[in]sessionIdSession identifier (optional parameter)
[in]messagePointer to the message to be signed
[out]pOutput stream where to write the signature
[out]writtenTotal number of bytes that have been written
Returns
Error code

Definition at line 209 of file ssh_signature.c.

◆ sshGenerateSignature()

error_t sshGenerateSignature ( SshConnection connection,
const char_t publicKeyAlgo,
const SshHostKey hostKey,
const SshBinaryString sessionId,
const SshBinaryString message,
uint8_t *  p,
size_t *  written 
)

Signature generation.

Parameters
[in]connectionPointer to the SSH connection
[in]publicKeyAlgoPublic key algorithm
[in]hostKeyPointer to the signer's host key
[in]sessionIdSession identifier (optional parameter)
[in]messagePointer to the message to be signed
[out]pOutput stream where to write the signature
[out]writtenTotal number of bytes that have been written
Returns
Error code

Definition at line 63 of file ssh_signature.c.

◆ sshParseEcdsaSignature()

error_t sshParseEcdsaSignature ( const uint8_t *  data,
size_t  length,
SshEcdsaSignature signature 
)

Parse an ECDSA signature.

Parameters
[in]dataPointer to the ECDSA signature structure
[in]lengthLength of the ECDSA signature structure, in bytes
[out]signatureInformation resulting from the parsing process
Returns
Error code

Definition at line 1633 of file ssh_signature.c.

◆ sshVerifyDsaSignature()

error_t sshVerifyDsaSignature ( const SshString publicKeyAlgo,
const SshBinaryString publicKeyBlob,
const SshBinaryString sessionId,
const SshBinaryString message,
const SshBinaryString signatureBlob 
)

DSA signature verification.

Parameters
[in]publicKeyAlgoPublic key algorithm
[in]publicKeyBlobSigner's public key
[in]sessionIdSession identifier (optional parameter)
[in]messageMessage whose signature is to be verified
[in]signatureBlobSignature to be verified
Returns
Error code

Definition at line 1111 of file ssh_signature.c.

◆ sshVerifyEcdsaSignature()

error_t sshVerifyEcdsaSignature ( const SshString publicKeyAlgo,
const SshBinaryString publicKeyBlob,
const SshBinaryString sessionId,
const SshBinaryString message,
const SshBinaryString signatureBlob 
)

ECDSA signature verification.

Parameters
[in]publicKeyAlgoPublic key algorithm
[in]publicKeyBlobSigner's public key
[in]sessionIdSession identifier (optional parameter)
[in]messageMessage whose signature is to be verified
[in]signatureBlobSignature to be verified
Returns
Error code

Definition at line 1235 of file ssh_signature.c.

◆ sshVerifyEd25519Signature()

error_t sshVerifyEd25519Signature ( const SshString publicKeyAlgo,
const SshBinaryString publicKeyBlob,
const SshBinaryString sessionId,
const SshBinaryString message,
const SshBinaryString signatureBlob 
)

Ed25519 signature verification.

Parameters
[in]publicKeyAlgoPublic key algorithm
[in]publicKeyBlobSigner's public key
[in]sessionIdSession identifier (optional parameter)
[in]messageMessage whose signature is to be verified
[in]signatureBlobSignature to be verified
Returns
Error code

Definition at line 1414 of file ssh_signature.c.

◆ sshVerifyEd448Signature()

error_t sshVerifyEd448Signature ( const SshString publicKeyAlgo,
const SshBinaryString publicKeyBlob,
const SshBinaryString sessionId,
const SshBinaryString message,
const SshBinaryString signatureBlob 
)

Ed448 signature verification.

Parameters
[in]publicKeyAlgoPublic key algorithm
[in]publicKeyBlobSigner's public key
[in]sessionIdSession identifier (optional parameter)
[in]messageMessage whose signature is to be verified
[in]signatureBlobSignature to be verified
Returns
Error code

Definition at line 1517 of file ssh_signature.c.

◆ sshVerifyRsaSignature()

error_t sshVerifyRsaSignature ( const SshString publicKeyAlgo,
const SshBinaryString publicKeyBlob,
const SshBinaryString sessionId,
const SshBinaryString message,
const SshBinaryString signatureBlob 
)

RSA signature verification.

Parameters
[in]publicKeyAlgoPublic key algorithm
[in]publicKeyBlobSigner's public key
[in]sessionIdSession identifier (optional parameter)
[in]messageMessage whose signature is to be verified
[in]signatureBlobSignature to be verified
Returns
Error code

Definition at line 965 of file ssh_signature.c.

◆ sshVerifySignature()

error_t sshVerifySignature ( SshConnection connection,
const SshString publicKeyAlgo,
const SshBinaryString publicKeyBlob,
const SshBinaryString sessionId,
const SshBinaryString message,
const SshBinaryString signature 
)

Signature verification.

Parameters
[in]connectionPointer to the SSH connection
[in]publicKeyAlgoPublic key algorithm
[in]publicKeyBlobSigner's public key
[in]sessionIdSession identifier (optional parameter)
[in]messageMessage whose signature is to be verified
[in]signatureSignature to be verified
Returns
Error code

Definition at line 806 of file ssh_signature.c.