Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
krb5_crypto(3)		   Heimdal Kerberos 5 library		  krb5_crypto(3)

NAME
     krb5_crypto - Heimdal Kerberos 5 cryptography functions

SYNOPSIS
   Functions
     HEIMDAL_WARN_UNUSED_RESULT_ATTRIBUTE    KRB5_LIB_FUNCTION	 krb5_error_code
	 KRB5_LIB_CALL krb5_generate_random (void *buf, size_t len)
     KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_generate_random_block (void *buf,
	 size_t len)
     KRB5_LIB_FUNCTION	  krb5_error_code    KRB5_LIB_CALL    krb5_enctype_valid
	 (krb5_context context, krb5_enctype etype)
     KRB5_LIB_FUNCTION	krb5_error_code  KRB5_LIB_CALL krb5_cksumtype_to_enctype
	 (krb5_context context, krb5_cksumtype ctype, krb5_enctype *etype)
     KRB5_LIB_FUNCTION	 krb5_error_code   KRB5_LIB_CALL   krb5_encrypt_iov_ivec
	 (krb5_context	  context,    krb5_crypto    crypto,   unsigned   usage,
	 krb5_crypto_iov *data, int num_data, void *ivec)
     KRB5_LIB_FUNCTION	 krb5_error_code   KRB5_LIB_CALL   krb5_decrypt_iov_ivec
	 (krb5_context	  context,    krb5_crypto    crypto,   unsigned   usage,
	 krb5_crypto_iov *data, unsigned int num_data, void *ivec)
     KRB5_LIB_FUNCTION	krb5_error_code  KRB5_LIB_CALL	krb5_create_checksum_iov
	 (krb5_context	  context,    krb5_crypto    crypto,   unsigned   usage,
	 krb5_crypto_iov *data, unsigned int num_data, krb5_cksumtype *type)
     KRB5_LIB_FUNCTION	krb5_error_code  KRB5_LIB_CALL	krb5_verify_checksum_iov
	 (krb5_context	  context,    krb5_crypto    crypto,   unsigned   usage,
	 krb5_crypto_iov *data, unsigned int num_data, krb5_cksumtype *type)
     KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_init (krb5_con-
	 text context, const krb5_keyblock *key, krb5_enctype etype, krb5_crypto
	 *crypto)
     KRB5_LIB_FUNCTION	 krb5_error_code    KRB5_LIB_CALL    krb5_crypto_destroy
	 (krb5_context context, krb5_crypto crypto)
     KRB5_LIB_FUNCTION	krb5_error_code  KRB5_LIB_CALL	krb5_crypto_getblocksize
	 (krb5_context context, krb5_crypto crypto, size_t *blocksize)
     KRB5_LIB_FUNCTION	krb5_error_code   KRB5_LIB_CALL   krb5_crypto_getenctype
	 (krb5_context context, krb5_crypto crypto, krb5_enctype *enctype)
     KRB5_LIB_FUNCTION	 krb5_error_code   KRB5_LIB_CALL  krb5_crypto_getpadsize
	 (krb5_context context, krb5_crypto crypto, size_t *padsize)
     KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL  krb5_crypto_getconfounder-
	 size (krb5_context context, krb5_crypto crypto, size_t *confoundersize)
     KRB5_LIB_FUNCTION	  krb5_error_code   KRB5_LIB_CALL   krb5_enctype_disable
	 (krb5_context context, krb5_enctype enctype)
     KRB5_LIB_FUNCTION	 krb5_error_code    KRB5_LIB_CALL    krb5_enctype_enable
	 (krb5_context context, krb5_enctype enctype)
     KRB5_LIB_FUNCTION	 krb5_error_code   KRB5_LIB_CALL  krb5_allow_weak_crypto
	 (krb5_context context, krb5_boolean enable)
     KRB5_LIB_FUNCTION	  krb5_boolean	  KRB5_LIB_CALL     krb5_is_enctype_weak
	 (krb5_context context, krb5_enctype enctype)
     KRB5_LIB_FUNCTION	krb5_boolean  KRB5_LIB_CALL  _krb5_enctype_requires_ran-
	 dom_salt (krb5_context context, krb5_enctype enctype)
     KRB5_LIB_FUNCTION	  krb5_error_code    KRB5_LIB_CALL    krb5_random_to_key
	 (krb5_context	context,  krb5_enctype	type,  const  void *data, size_t
	 size, krb5_keyblock *key)
     KRB5_LIB_FUNCTION	  krb5_error_code    KRB5_LIB_CALL    krb5_crypto_fx_cf2
	 (krb5_context	context,  const  krb5_crypto  crypto1, const krb5_crypto
	 crypto2, krb5_data *pepper1, krb5_data *pepper2, krb5_enctype	enctype,
	 krb5_keyblock *res)
     KRB5_LIB_FUNCTION	krb5_error_code  KRB5_LIB_CALL	krb5_generate_subkey_ex-
	 tended (krb5_context context, const  krb5_keyblock  *key,  krb5_enctype
	 etype, krb5_keyblock **subkey)
     KRB5_LIB_FUNCTION	 void  KRB5_LIB_CALL  krb5_keyblock_zero  (krb5_keyblock
	 *keyblock)
     KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_keyblock_contents (krb5_con-
	 text context, krb5_keyblock *keyblock)
     KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_keyblock (krb5_context  con-
	 text, krb5_keyblock *keyblock)
     KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_keyblock_contents
	 (krb5_context context, const krb5_keyblock *inblock, krb5_keyblock *to)
     KRB5_LIB_FUNCTION	  krb5_error_code    KRB5_LIB_CALL    krb5_copy_keyblock
	 (krb5_context	context,  const  krb5_keyblock	*inblock,  krb5_keyblock
	 **to)
     KRB5_LIB_FUNCTION	 krb5_enctype	KRB5_LIB_CALL  krb5_keyblock_get_enctype
	 (const krb5_keyblock *block)
     KRB5_LIB_FUNCTION	  krb5_error_code    KRB5_LIB_CALL    krb5_keyblock_init
	 (krb5_context	context,  krb5_enctype	type,  const  void *data, size_t
	 size, krb5_keyblock *key)
     krb5_error_code  _krb5_SP800_108_HMAC_KDF	(krb5_context	context,   const
	 krb5_data   *kdf_K1,	const	krb5_data  *kdf_label,	const  krb5_data
	 *kdf_context, const EVP_MD *md, krb5_data *kdf_K0)

Detailed Description
Function Documentation
   KRB5_LIB_FUNCTION  krb5_boolean   KRB5_LIB_CALL   _krb5_enctype_requires_ran-
     dom_salt (krb5_context context, krb5_enctype enctype)
     Returns whether the encryption type should use randomly generated salts

     Parameters
	 context Kerberos 5 context
	 enctype encryption type to probe

     Returns
	 Returns true if generated salts should have random component

   krb5_error_code   _krb5_SP800_108_HMAC_KDF	(krb5_context	context,   const
     krb5_data * kdf_K1, const krb5_data * kdf_label, const krb5_data * kdf_con-
     text, const EVP_MD * md, krb5_data * kdf_K0)
     As described in SP800-108 5.1 (for HMAC)

     Parameters
	 context Kerberos 5 context
	 kdf_K1 Base key material.
	 kdf_label A string that identifies the purpose for the derived key.
	 kdf_context A binary string containing parties, nonce, etc.
	 md Message digest function to use for PRF.
	 kdf_K0 Derived key data.

     Returns
	 Return an error code for an failure or 0 on success.

   KRB5_LIB_FUNCTION   krb5_error_code	 KRB5_LIB_CALL	  krb5_allow_weak_crypto
     (krb5_context context, krb5_boolean enable)
     Enable or disable all weak encryption types

     Parameters
	 context Kerberos 5 context
	 enable true to enable, false to disable

     Returns
	 Return an error code or 0.

   KRB5_LIB_FUNCTION   krb5_error_code	KRB5_LIB_CALL  krb5_cksumtype_to_enctype
     (krb5_context context, krb5_cksumtype ctype, krb5_enctype * etype)
     Return the coresponding encryption type for a checksum type.

     Parameters
	 context Kerberos context
	 ctype The checksum type to get the result enctype for
	 etype The returned encryption, when the matching etype  is  not  found,
	 etype is set to ETYPE_NULL.

     Returns
	 Return an error code for an failure or 0 on success.

   KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_keyblock (krb5_con-
     text context, const krb5_keyblock * inblock, krb5_keyblock ** to)
     Copy a keyblock, free the output keyblock with krb5_free_keyblock().

     Parameters
	 context a Kerberos 5 context
	 inblock the key to copy
	 to the output key.

     Returns
	 0 on success or a Kerberos 5 error code

   KRB5_LIB_FUNCTION  krb5_error_code  KRB5_LIB_CALL krb5_copy_keyblock_contents
     (krb5_context context, const krb5_keyblock * inblock, krb5_keyblock * to)
     Copy a keyblock, free  the  output  keyblock  with  krb5_free_keyblock_con-
     tents().

     Parameters
	 context a Kerberos 5 context
	 inblock the key to copy
	 to the output key.

     Returns
	 0 on success or a Kerberos 5 error code

   KRB5_LIB_FUNCTION   krb5_error_code	 KRB5_LIB_CALL	krb5_create_checksum_iov
     (krb5_context context, krb5_crypto crypto, unsigned usage,  krb5_crypto_iov
     * data, unsigned int num_data, krb5_cksumtype * type)
     Create a Kerberos message checksum.

     Parameters
	 context Kerberos context
	 crypto Kerberos crypto context
	 usage Key usage for this buffer
	 data array of buffers to process
	 num_data length of array
	 type output data

     Returns
	 Return an error code or 0.

   KRB5_LIB_FUNCTION	 krb5_error_code    KRB5_LIB_CALL    krb5_crypto_destroy
     (krb5_context context, krb5_crypto crypto)
     Free a crypto context created by krb5_crypto_init().

     Parameters
	 context Kerberos context
	 crypto crypto context to free

     Returns
	 Return an error code or 0.

   KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_fx_cf2 (krb5_con-
     text  context,  const  krb5_crypto  crypto1,  const  krb5_crypto	crypto2,
     krb5_data	*  pepper1, krb5_data * pepper2, krb5_enctype enctype, krb5_key-
     block * res)
     The FX-CF2 key derivation function, used in FAST and preauth framework.

     Parameters
	 context Kerberos 5 context
	 crypto1 first key to combine
	 crypto2 second key to combine
	 pepper1 factor to combine with first key to garante uniqueness
	 pepper2 factor to combine with second key to garante uniqueness
	 enctype the encryption type of the resulting key
	 res allocated key, free with krb5_free_keyblock_contents()

     Returns
	 Return an error code or 0.

   KRB5_LIB_FUNCTION  krb5_error_code	KRB5_LIB_CALL	krb5_crypto_getblocksize
     (krb5_context context, krb5_crypto crypto, size_t * blocksize)
     Return the blocksize used algorithm referenced by the crypto context

     Parameters
	 context Kerberos context
	 crypto crypto context to query
	 blocksize the resulting blocksize

     Returns
	 Return an error code or 0.

   KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_getconfoundersize
     (krb5_context context, krb5_crypto crypto, size_t * confoundersize)
     Return the confounder size used by the crypto context

     Parameters
	 context Kerberos context
	 crypto crypto context to query
	 confoundersize the returned confounder size

     Returns
	 Return an error code or 0.

   KRB5_LIB_FUNCTION	krb5_error_code   KRB5_LIB_CALL   krb5_crypto_getenctype
     (krb5_context context, krb5_crypto crypto, krb5_enctype * enctype)
     Return the encryption type used by the crypto context

     Parameters
	 context Kerberos context
	 crypto crypto context to query
	 enctype the resulting encryption type

     Returns
	 Return an error code or 0.

   KRB5_LIB_FUNCTION   krb5_error_code	 KRB5_LIB_CALL	  krb5_crypto_getpadsize
     (krb5_context context, krb5_crypto crypto, size_t * padsize)
     Return the padding size used by the crypto context

     Parameters
	 context Kerberos context
	 crypto crypto context to query
	 padsize the return padding size

     Returns
	 Return an error code or 0.

   KRB5_LIB_FUNCTION  krb5_error_code  KRB5_LIB_CALL krb5_crypto_init (krb5_con-
     text context, const krb5_keyblock * key, krb5_enctype etype, krb5_crypto  *
     crypto)
     Create  a	crypto	context used for all encryption and signature operation.
     The encryption type to use is taken from the key,	but  can  be  overridden
     with  the enctype parameter. This can be useful for encryptions types which
     is compatiable (DES for example).

     To free the crypto context, use krb5_crypto_destroy().

     Parameters
	 context Kerberos context
	 key the key block information with all key data
	 etype the encryption type
	 crypto the resulting crypto context

     Returns
	 Return an error code or 0.

   KRB5_LIB_FUNCTION   krb5_error_code	  KRB5_LIB_CALL    krb5_decrypt_iov_ivec
     (krb5_context  context, krb5_crypto crypto, unsigned usage, krb5_crypto_iov
     * data, unsigned int num_data, void * ivec)
     Inline decrypt a Kerberos message.

     Parameters
	 context Kerberos context
	 crypto Kerberos crypto context
	 usage Key usage for this buffer
	 data array of buffers to process
	 num_data length of array
	 ivec initial cbc/cts vector

     Returns
	 Return an error code or 0.

     1.  KRB5_CRYPTO_TYPE_HEADER

     2.  one	  KRB5_CRYPTO_TYPE_DATA      and      array	 [0,...]      of
	 KRB5_CRYPTO_TYPE_SIGN_ONLY  in  any order, however the receiver have to
	 aware of the order. KRB5_CRYPTO_TYPE_SIGN_ONLY is commonly  used  unen-
	 crypoted protocol headers and trailers. The output data will be of same
	 size as the input data or shorter.

   KRB5_LIB_FUNCTION	krb5_error_code    KRB5_LIB_CALL   krb5_encrypt_iov_ivec
     (krb5_context context, krb5_crypto crypto, unsigned usage,  krb5_crypto_iov
     * data, int num_data, void * ivec)
     Inline encrypt a kerberos message

     Parameters
	 context Kerberos context
	 crypto Kerberos crypto context
	 usage Key usage for this buffer
	 data array of buffers to process
	 num_data length of array
	 ivec initial cbc/cts vector

     Returns
	 Return an error code or 0.

     Kerberos encrypted data look like this:

     1.  KRB5_CRYPTO_TYPE_HEADER

     2.  array	   [1,...]     KRB5_CRYPTO_TYPE_DATA	 and	array	 [0,...]
	 KRB5_CRYPTO_TYPE_SIGN_ONLY in any order, however the receiver	have  to
	 aware of the order. KRB5_CRYPTO_TYPE_SIGN_ONLY is commonly used headers
	 and trailers.

     3.  KRB5_CRYPTO_TYPE_PADDING, at least on padsize long if padsize > 1

     4.  KRB5_CRYPTO_TYPE_TRAILER

   KRB5_LIB_FUNCTION	krb5_error_code    KRB5_LIB_CALL    krb5_enctype_disable
     (krb5_context context, krb5_enctype enctype)
     Disable encryption type

     Parameters
	 context Kerberos 5 context
	 enctype encryption type to disable

     Returns
	 Return an error code or 0.

   KRB5_LIB_FUNCTION	krb5_error_code    KRB5_LIB_CALL     krb5_enctype_enable
     (krb5_context context, krb5_enctype enctype)
     Enable encryption type

     Parameters
	 context Kerberos 5 context
	 enctype encryption type to enable

     Returns
	 Return an error code or 0.

   KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_enctype_valid (krb5_con-
     text context, krb5_enctype etype)
     Check if a enctype is valid, return 0 if it is.

     Parameters
	 context Kerberos context
	 etype enctype to check if its valid or not

     Returns
	 Return an error code for an failure or 0 on success (enctype valid).

   KRB5_LIB_FUNCTION  void  KRB5_LIB_CALL  krb5_free_keyblock (krb5_context con-
     text, krb5_keyblock * keyblock)
     Free  a  keyblock,  also  zero  out  the  content	of  the  keyblock,  uses
     krb5_free_keyblock_contents() to free the content.

     Parameters
	 context a Kerberos 5 context
	 keyblock keyblock to free, NULL is valid argument

   KRB5_LIB_FUNCTION  void  KRB5_LIB_CALL krb5_free_keyblock_contents (krb5_con-
     text context, krb5_keyblock * keyblock)
     Free a keyblock's content, also zero out the content of the keyblock.

     Parameters
	 context a Kerberos 5 context
	 keyblock keyblock content to free, NULL is valid argument

   HEIMDAL_WARN_UNUSED_RESULT_ATTRIBUTE    KRB5_LIB_FUNCTION	 krb5_error_code
     KRB5_LIB_CALL krb5_generate_random (void * buf, size_t len)
     Fill buffer buf with len bytes of PRNG randomness that is ok to use for key
     generation,  padding and public diclosing the randomness w/o disclosing the
     randomness source.

     This function can fail, and callers must check the return value.

     Parameters
	 buf a buffer to fill with randomness
	 len length of memory that buf points to.

     Returns
	 return 0 on success or HEIM_ERR_RANDOM_OFFLINE if the funcation  failed
	 to initialize the randomness source.

   KRB5_LIB_FUNCTION  void KRB5_LIB_CALL krb5_generate_random_block (void * buf,
     size_t len)
     Fill buffer buf with len bytes of PRNG randomness that is ok to use for key
     generation, padding and public diclosing the randomness w/o disclosing  the
     randomness source.

     This function can NOT fail, instead it will abort() and program will crash.

     If  this  function  is  called  after a successful krb5_init_context(), the
     chance of it failing is low due to that krb5_init_context() pulls out  some
     random,  and  quite  commonly  the randomness sources will not fail once it
     have started to produce good output, /dev/urandom behavies that way.

     Parameters
	 buf a buffer to fill with randomness
	 len length of memory that buf points to.

   KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_generate_subkey_extended
     (krb5_context context,  const  krb5_keyblock  *  key,  krb5_enctype  etype,
     krb5_keyblock ** subkey)
     Generate subkey, from keyblock

     Parameters
	 context kerberos context
	 key session key
	 etype encryption type of subkey, if ETYPE_NULL, use key's enctype
	 subkey returned new, free with krb5_free_keyblock().

     Returns
	 0 on success or a Kerberos 5 error code

   KRB5_LIB_FUNCTION  krb5_boolean KRB5_LIB_CALL krb5_is_enctype_weak (krb5_con-
     text context, krb5_enctype enctype)
     Returns is the encryption is strong or weak

     Parameters
	 context Kerberos 5 context
	 enctype encryption type to probe

     Returns
	 Returns true if encryption type is weak or is not supported.

   KRB5_LIB_FUNCTION krb5_enctype KRB5_LIB_CALL krb5_keyblock_get_enctype (const
     krb5_keyblock * block)
     Get encryption type of a keyblock.

   KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_keyblock_init (krb5_con-
     text context, krb5_enctype type, const void * data, size_t size,  krb5_key-
     block * key)
     Fill in `key' with key data of type `enctype' from `data' of length `size'.
     Key should be freed using krb5_free_keyblock_contents().

     Returns
	 0 on success or a Kerberos 5 error code

   KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_keyblock_zero (krb5_keyblock * key-
     block)
     Zero out a keyblock

     Parameters
	 keyblock keyblock to zero out

   KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_random_to_key (krb5_con-
     text  context, krb5_enctype type, const void * data, size_t size, krb5_key-
     block * key)
     Converts the random bytestring to a  protocol  key  according  to	Kerberos
     crypto  frame work. It may be assumed that all the bits of the input string
     are equally random, even though the entropy present in  the  random  source
     may be limited.

     Parameters
	 context Kerberos 5 context
	 type the enctype resulting key will be of
	 data input random data to convert to a key
	 size size of input random data, at least krb5_enctype_keysize() long
	 key key, output key, free with krb5_free_keyblock_contents()

     Returns
	 Return an error code or 0.

   KRB5_LIB_FUNCTION   krb5_error_code	 KRB5_LIB_CALL	krb5_verify_checksum_iov
     (krb5_context context, krb5_crypto crypto, unsigned usage,  krb5_crypto_iov
     * data, unsigned int num_data, krb5_cksumtype * type)
     Verify a Kerberos message checksum.

     Parameters
	 context Kerberos context
	 crypto Kerberos crypto context
	 usage Key usage for this buffer
	 data array of buffers to process
	 num_data length of array
	 type return checksum type if not NULL

     Returns
	 Return an error code or 0.

Author
     Generated	automatically by Doxygen for Heimdal Kerberos 5 library from the
     source code.

Version 7.8.0			 Tue Nov 15 2022		  krb5_crypto(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=krb5_crypto_getconfoundersize&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help