---
name: "kcapi_cipher_stream_init_dec"
section: "3"
platform: "linux"
package: "libkcapi-dev"
version: "1.4.0-1+b2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/kcapi_cipher_stream_init_dec"
---

# kcapi\_cipher\_stream\_init\_dec(3)

start a decryption operation (stream)

## NAME

kcapi\_cipher\_stream\_init\_dec - start a decryption operation (stream)

## SYNOPSIS

**ssize\_t kcapi\_cipher\_stream\_init\_dec(struct kcapi\_handle \*** *handle***, const uint8\_t \*** *iv***, struct iovec \*** *iov***, size\_t** *iovlen***);**

## ARGUMENTS

*handle*

\[in\] cipher handle

*iv*

\[in\] IV to be used for cipher operation

*iov*

\[in\] scatter/gather list with data to be encrypted. This is the pointer to the first iov entry if an array of iov entries is supplied. See [sendmsg(2)](/sendmsg/2.md) for details on how iov is to be used. This pointer may be NULL if no data to be encrypted is available at the point of the call.

*iovlen*

\[in\] number of scatter/gather list elements. If iov is NULL, this value must be zero.

## DESCRIPTION

A stream decryption operation is started with this call. Multiple successive **kcapi\_cipher\_stream\_update** function calls can be invoked to send more ciphertext data to be decrypted. The kernel buffers the input until **kcapi\_cipher\_stream\_op** picks up the decrypted data. Once ciphertext is decrypted during the **kcapi\_cipher\_stream\_op** it is removed from the kernel buffer.

The function calls of **kcapi\_cipher\_stream\_update** and **kcapi\_cipher\_stream\_op** can be mixed, even by multiple threads of an application.

The IV buffer must be exactly **kcapi\_cipher\_ivsize** bytes in size.

*return* number of bytes sent to the kernel upon success; a negative errno-style error code if an error occurred

## AUTHOR

**Stephan Mueller** \<smueller@chronox.de\>

Author.

## COPYRIGHT
