1gnutls_privkey_import_ext4(3)       gnutls       gnutls_privkey_import_ext4(3)
2
3
4

NAME

6       gnutls_privkey_import_ext4 - API function
7

SYNOPSIS

9       #include <gnutls/abstract.h>
10
11       int  gnutls_privkey_import_ext4(gnutls_privkey_t pkey, void * userdata,
12       gnutls_privkey_sign_data_func                             sign_data_fn,
13       gnutls_privkey_sign_hash_func sign_hash_fn, gnutls_privkey_decrypt_func
14       decrypt_fn,            gnutls_privkey_deinit_func            deinit_fn,
15       gnutls_privkey_info_func info_fn, unsigned int flags);
16

ARGUMENTS

18       gnutls_privkey_t pkey
19                   The private key
20
21       void * userdata
22                   private data to be provided to the callbacks
23
24       gnutls_privkey_sign_data_func sign_data_fn
25                   callback for signature operations (may be NULL)
26
27       gnutls_privkey_sign_hash_func sign_hash_fn
28                   callback for signature operations (may be NULL)
29
30       gnutls_privkey_decrypt_func decrypt_fn
31                   callback for decryption operations (may be NULL)
32
33       gnutls_privkey_deinit_func deinit_fn
34                   a deinitialization function
35
36       gnutls_privkey_info_func info_fn
37                   returns  info about the public key algorithm (should not be
38                   NULL)
39
40       unsigned int flags
41                   Flags for the import
42

DESCRIPTION

44       This  function  will   associate   the   given   callbacks   with   the
45       gnutls_privkey_t  type. At least one of the callbacks must be non-null.
46       If a deinitialization function is provided then  flags  is  assumed  to
47       contain GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE.
48
49       Note    that    in    contrast    with    the   signing   function   of
50       gnutls_privkey_import_ext3(), the signing functions  provided  to  this
51       function  take explicitly the signature algorithm as parameter and dif‐
52       ferent functions are provided to sign the data and hashes.
53
54       The  sign_hash_fn is to be called to sign pre-hashed data. The input to
55       the  callback  is the output of the hash (such as SHA256) corresponding
56       to the signature algorithm. For RSA  PKCS1  signatures,  the  signature
57       algorithm  can be set to GNUTLS_SIGN_RSA_RAW, and in that case the data
58       should be handled as if they were an RSA PKCS1 DigestInfo structure.
59
60       The  sign_data_fn is to be called to sign data. The input data will  be
61       he  data  to  be signed (and hashed), with the provided signature algo‐
62       rithm. This function is  to  be  used  for  signature  algorithms  like
63       Ed25519 which cannot take pre-hashed data as input.
64
65       When  both   sign_data_fn and  sign_hash_fn functions are provided they
66       must be able to operate on  all  the  supported  signature  algorithms,
67       unless prohibited by the type of the algorithm (e.g., as with Ed25519).
68
69       The   info_fn must provide information on the signature algorithms sup‐
70       ported  by  this  private   key,   and   should   support   the   flags
71       GNUTLS_PRIVKEY_INFO_PK_ALGO,   GNUTLS_PRIVKEY_INFO_HAVE_SIGN_ALGO   and
72       GNUTLS_PRIVKEY_INFO_PK_ALGO_BITS.  It must return -1 on unknown flags.
73

RETURNS

75       On success, GNUTLS_E_SUCCESS (0)  is  returned,  otherwise  a  negative
76       error value.
77

SINCE

79       3.6.0
80

REPORTING BUGS

82       Report bugs to <bugs@gnutls.org>.
83       Home page: https://www.gnutls.org
84
85
87       Copyright © 2001-2020 Free Software Foundation, Inc., and others.
88       Copying  and  distribution  of this file, with or without modification,
89       are permitted in any medium  without  royalty  provided  the  copyright
90       notice and this notice are preserved.
91

SEE ALSO

93       The  full  documentation  for gnutls is maintained as a Texinfo manual.
94       If the /usr/share/doc/gnutls/ directory does not contain the HTML  form
95       visit
96
97       https://www.gnutls.org/manual/
98
99gnutls                              3.6.13       gnutls_privkey_import_ext4(3)
Impressum