---
name: "gnutls_privkey_sign_hash2"
section: "3"
platform: "linux"
package: "gnutls"
version: "3.8.13-3"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/gnutls_privkey_sign_hash2"
---

# gnutls\_privkey\_sign\_hash2(3)

API function

## NAME

gnutls\_privkey\_sign\_hash2 - API function

## SYNOPSIS

**#include \<gnutls/abstract.h\>**

**int gnutls\_privkey\_sign\_hash2(gnutls\_privkey\_t** *signer***, gnutls\_sign\_algorithm\_t** *algo***, unsigned int** *flags***, const gnutls\_datum\_t \*** *hash\_data***, gnutls\_datum\_t \*** *signature***);**

## ARGUMENTS

- gnutls\_privkey\_t signer

  Holds the signer's key

- gnutls\_sign\_algorithm\_t algo

  The signature algorithm used

- unsigned int flags

  Zero or one of **gnutls\_privkey\_flags\_t**

- const gnutls\_datum\_t \* hash\_data

  holds the data to be signed

- gnutls\_datum\_t \* signature

  will contain newly allocated signature

## DESCRIPTION

This function will sign the given hashed data using the specified signature algorithm. This function is an enhancement of **gnutls\_privkey\_sign\_hash()**, as it allows utilizing a alternative signature algorithm where possible (e.g, use an RSA key with RSA-PSS).

The flags may be **GNUTLS\_PRIVKEY\_SIGN\_FLAG\_TLS1\_RSA**. In that case this function will ignore  *hash\_algo* and perform a raw PKCS1 signature. Note that this flag is supported since 3.6.9.

Note also that, not all algorithm support signing already hashed data. When signing with Ed25519, **gnutls\_privkey\_sign\_data2()** should be used instead.

## RETURNS

On success, **GNUTLS\_E\_SUCCESS** (0) is returned, otherwise a negative error value.

## SINCE

3\.6.0

## REPORTING BUGS

Report bugs to \<bugs@gnutls.org\>.\
 Home page: https://www.gnutls.org

## COPYRIGHT

Copyright © 2001-2023 Free Software Foundation, Inc., and others.\
 Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.

## SEE ALSO

The full documentation for **gnutls** is maintained as a Texinfo manual. If the /usr/share/doc/gnutls/ directory does not contain the HTML form visit

- https://www.gnutls.org/manual/
