gnutls\_x509\_crq\_sign2(3) gnutls gnutls\_x509\_crq\_sign2(3)

# [NAME](#NAME)

gnutls\_x509\_crq\_sign2 - API function

# [SYNOPSIS](#SYNOPSIS)

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

**int gnutls\_x509\_crq\_sign2(gnutls\_x509\_crq\_t crq, gnutls\_x509\_privkey\_t key, gnutls\_digest\_algorithm\_t dig, unsigned int flags);**

# [ARGUMENTS](#ARGUMENTS)

[gnutls\_x509\_crq\_t crq](#gnutls_x509_crq_t)

should contain a **gnutls\_x509\_crq\_t** type

[gnutls\_x509\_privkey\_t key](#gnutls_x509_privkey_t)

holds a private key

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

The message digest to use, i.e., **GNUTLS\_DIG\_SHA256**

[unsigned int flags](#unsigned)

must be 0

# [DESCRIPTION](#DESCRIPTION)

This function will sign the certificate request with a private key. This must be the same key as the one used in **gnutls\_x509\_crt\_set\_key()** since a certificate request is self signed.

This must be the last step in a certificate request generation since all the previously set parameters are now signed.

A known limitation of this function is, that a newly-signed request will not be fully functional (e.g., for signature verification), until it is exported an re-imported.

After GnuTLS 3.6.1 the value of *dig* may be **GNUTLS\_DIG\_UNKNOWN**, and in that case, a suitable but reasonable for the key algorithm will be selected.

# [RETURNS](#RETURNS)

**GNUTLS\_E\_SUCCESS** on success, otherwise a negative error code. **GNUTLS\_E\_ASN1\_VALUE\_NOT\_FOUND** is returned if you didn't set all information in the certificate request (e.g., the version using **gnutls\_x509\_crq\_set\_version()**).

# [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_x509_crq_sign2(3) from gnutls 3.8.13-r1 (Chainguard OS)
Source: https://gitlab.com/gnutls/gnutls
