gnutls\_pkcs7\_sign(3) gnutls gnutls\_pkcs7\_sign(3)

# [NAME](#NAME)

gnutls\_pkcs7\_sign - API function

# [SYNOPSIS](#SYNOPSIS)

**#include &lt;gnutls/pkcs7.h&gt;**

**int gnutls\_pkcs7\_sign(gnutls\_pkcs7\_t pkcs7, gnutls\_x509\_crt\_t signer, gnutls\_privkey\_t signer\_key, const gnutls\_datum\_t * data, gnutls\_pkcs7\_attrs\_t signed\_attrs, gnutls\_pkcs7\_attrs\_t unsigned\_attrs, gnutls\_digest\_algorithm\_t dig, unsigned flags);**

# [ARGUMENTS](#ARGUMENTS)

[gnutls\_pkcs7\_t pkcs7](#gnutls_pkcs7_t)

should contain a **gnutls\_pkcs7\_t** type

[gnutls\_x509\_crt\_t signer](#gnutls_x509_crt_t)

the certificate to sign the structure

[gnutls\_privkey\_t signer\_key](#gnutls_privkey_t)

the key to sign the structure

[const gnutls\_datum\_t * data](#const)

The data to be signed or **NULL** if the data are already embedded

[gnutls\_pkcs7\_attrs\_t signed\_attrs](#gnutls_pkcs7_attrs_t)

Any additional attributes to be included in the signed ones (or **NULL**)

[gnutls\_pkcs7\_attrs\_t unsigned\_attrs](#gnutls_pkcs7_attrs_t~2)

Any additional attributes to be included in the unsigned ones (or **NULL**)

[gnutls\_digest\_algorithm\_t dig](#gnutls_digest_algorithm_t)

The digest algorithm to use for signing

[unsigned flags](#unsigned)

Should be zero or one of **GNUTLS\_PKCS7** flags

# [DESCRIPTION](#DESCRIPTION)

This function will add a signature in the provided PKCS **7** structure for the provided data. Multiple signatures can be made with different signers.

The available flags are: **GNUTLS\_PKCS7\_EMBED\_DATA**, **GNUTLS\_PKCS7\_INCLUDE\_TIME**, **GNUTLS\_PKCS7\_INCLUDE\_CERT**, and **GNUTLS\_PKCS7\_WRITE\_SPKI**. They are explained in the **gnutls\_pkcs7\_sign\_flags** definition.

# [RETURNS](#RETURNS)

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

# [SINCE](#SINCE)

3.4.2

# [REPORTING BUGS](#REPORTING_BUGS)

Report bugs to &lt;bugs@gnutls.org&gt;.  
Home page: https://www.gnutls.org

# [COPYRIGHT](#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](#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/](https://www.gnutls.org/manual/)

3.8.13 gnutls

---

Document: gnutls_pkcs7_sign(3) from gnutls 3.8.13-r3 (Chainguard OS)
Source: https://gitlab.com/gnutls/gnutls
