xref: /freebsd/crypto/krb5/doc/html/_sources/appdev/refs/api/krb5_k_decrypt.rst.txt (revision 7f2fe78b9dd5f51c821d771b63d2e096f6fd49e9)
1krb5_k_decrypt -  Decrypt data using a key (operates on opaque key).
2=====================================================================
3
4..
5
6.. c:function:: krb5_error_code krb5_k_decrypt(krb5_context context, krb5_key key, krb5_keyusage usage, const krb5_data * cipher_state, const krb5_enc_data * input, krb5_data * output)
7
8..
9
10
11:param:
12
13	          **[in]** **context** - Library context
14
15	          **[in]** **key** - Encryption key
16
17	          **[in]** **usage** - Key usage (see KRB5_KEYUSAGE macros)
18
19	          **[inout]** **cipher_state** - Cipher state; specify NULL if not needed
20
21	          **[in]** **input** - Encrypted data
22
23	          **[out]** **output** - Decrypted data
24
25
26..
27
28
29:retval:
30         -   0   Success; otherwise - Kerberos error codes
31
32
33..
34
35
36
37
38
39
40
41This function decrypts the data block *input* and stores the output into *output* . The actual decryption key will be derived from *key* and *usage* if key derivation is specified for the encryption type. If non-null, *cipher_state* specifies the beginning state for the decryption operation, and is updated with the state to be passed as input to the next operation.
42
43
44
45
46
47
48
49
50
51
52..
53
54
55
56
57
58
59.. note::
60
61	 The caller must initialize *output* and allocate at least enough space for the result. The usual practice is to allocate an output buffer as long as the ciphertext, and let krb5_c_decrypt() trim *output->length* . For some enctypes, the resulting *output->length* may include padding bytes.
62
63
64
65
66