Encrypts size bytes at in, storing result in
out. eblock points to an encrypt block which
has been initialized by process_key.
in must include sufficient space beyond the size bytes of input data to hold pad and redundancy check bytes; the macro krb5_encrypt_size can be used to compute this size.
out must be preallocated by the caller to contain sufficient storage to hold the output; the macro krb5_encrypt_size can be used to compute this size.
ivec points to an initial vector/seed to be used in the encryption. If null, the cryptosystem may choose an appropriate initialization vector.
Decrypts size bytes at in, storing result in
out.
eblock points to an encrypt block which has been initialized
by process_key.
size must be a multiple of the encryption block size.
out must be preallocated by the caller to contain sufficient storage to hold the output; this is guaranteed to be no more than the input size.
ivec points to an initial vector/seed to be used in the decryption. If null, the cryptosystem may choose an appropriate ivec.
Does any necessary key preprocessing (such as computing key
schedules for DES).
eblockcrypto_entry must be set by the caller; the
other elements of eblock are to be assigned by this function.
[In particular, eblockkey must be set by this
function if the key is needed in raw form by the encryption routine.]
The caller may not move or reallocate keyblock before calling finish_key on eblock.
Does any necessary clean-up on eblock (such as releasing
resources held by eblockpriv.
Converts the string pointed to by data into an encryption key
of type keytype. *keyblock is filled in with
the key info; in particular, keyblockcontents is to
be set to allocated storage. It is the responsibility of the caller to
release this storage when the generated key no longer needed.
The routine may use salt to seed or alter the conversion algorithm.
If the particular function called does not know how to make a key of type keytype, an error may be returned.
Initialize the random key generator using the encryption key seedblock and allocating private sequence information, filling in *seed with the address of such information. *seed is to be passed to random_key to provide sequence information.
Free any resources held by seed and assigned by init_random_key.
Generate a random encryption key, allocating storage for it and filling in the keyblock address in *keyblock. When the caller has finished using the keyblock, he should call krb5_free_keyblock to release its storage.