|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@deftypefun {int} {gnutls_privkey_import_ext4} (gnutls_privkey_t @var{pkey}, void * @var{userdata}, gnutls_privkey_sign_data_func @var{sign_data_fn}, gnutls_privkey_sign_hash_func @var{sign_hash_fn}, gnutls_privkey_decrypt_func @var{decrypt_fn}, gnutls_privkey_deinit_func @var{deinit_fn}, gnutls_privkey_info_func @var{info_fn}, unsigned int @var{flags})
|
|
Packit Service |
4684c1 |
@var{pkey}: The private key
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{userdata}: private data to be provided to the callbacks
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{sign_data_fn}: callback for signature operations (may be @code{NULL} )
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{sign_hash_fn}: callback for signature operations (may be @code{NULL} )
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{decrypt_fn}: callback for decryption operations (may be @code{NULL} )
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{deinit_fn}: a deinitialization function
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{info_fn}: returns info about the public key algorithm (should not be @code{NULL} )
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{flags}: Flags for the import
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
This function will associate the given callbacks with the
|
|
Packit Service |
4684c1 |
@code{gnutls_privkey_t} type. At least one of the callbacks
|
|
Packit Service |
4684c1 |
must be non-null. If a deinitialization function is provided
|
|
Packit Service |
4684c1 |
then flags is assumed to contain @code{GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE} .
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
Note that in contrast with the signing function of
|
|
Packit Service |
4684c1 |
@code{gnutls_privkey_import_ext3()} , the signing functions provided to this
|
|
Packit Service |
4684c1 |
function take explicitly the signature algorithm as parameter and
|
|
Packit Service |
4684c1 |
different functions are provided to sign the data and hashes.
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
The @code{sign_hash_fn} is to be called to sign pre-hashed data. The input
|
|
Packit Service |
4684c1 |
to the callback is the output of the hash (such as SHA256) corresponding
|
|
Packit Service |
4684c1 |
to the signature algorithm. For RSA PKCS@code{1} signatures, the signature
|
|
Packit Service |
4684c1 |
algorithm can be set to @code{GNUTLS_SIGN_RSA_RAW} , and in that case the data
|
|
Packit Service |
4684c1 |
should be handled as if they were an RSA PKCS@code{1} DigestInfo structure.
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
The @code{sign_data_fn} is to be called to sign data. The input data will be
|
|
Packit Service |
4684c1 |
he data to be signed (and hashed), with the provided signature
|
|
Packit Service |
4684c1 |
algorithm. This function is to be used for signature algorithms like
|
|
Packit Service |
4684c1 |
Ed25519 which cannot take pre-hashed data as input.
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
When both @code{sign_data_fn} and @code{sign_hash_fn} functions are provided they
|
|
Packit Service |
4684c1 |
must be able to operate on all the supported signature algorithms,
|
|
Packit Service |
4684c1 |
unless prohibited by the type of the algorithm (e.g., as with Ed25519).
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
The @code{info_fn} must provide information on the signature algorithms supported by
|
|
Packit Service |
4684c1 |
this private key, and should support the flags @code{GNUTLS_PRIVKEY_INFO_PK_ALGO} ,
|
|
Packit Service |
4684c1 |
@code{GNUTLS_PRIVKEY_INFO_HAVE_SIGN_ALGO} and @code{GNUTLS_PRIVKEY_INFO_PK_ALGO_BITS} .
|
|
Packit Service |
4684c1 |
It must return -1 on unknown flags.
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@strong{Returns:} On success, @code{GNUTLS_E_SUCCESS} (0) is returned, otherwise a
|
|
Packit Service |
4684c1 |
negative error value.
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@strong{Since:} 3.6.0
|
|
Packit Service |
4684c1 |
@end deftypefun
|