'\" t .\" Title: aead_request_set_crypt .\" Author: .\" Generator: DocBook XSL Stylesheets v1.79.1 .\" Date: January 2017 .\" Manual: Programming Interface .\" Source: Kernel Hackers Manual 4.8.15 .\" Language: English .\" .TH "AEAD_REQUEST_SET_CRY" "9" "January 2017" "Kernel Hackers Manual 4\&.8\&." "Programming Interface" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" aead_request_set_crypt \- set data buffers .SH "SYNOPSIS" .HP \w'void\ aead_request_set_crypt('u .BI "void aead_request_set_crypt(struct\ aead_request\ *\ " "req" ", struct\ scatterlist\ *\ " "src" ", struct\ scatterlist\ *\ " "dst" ", unsigned\ int\ " "cryptlen" ", u8\ *\ " "iv" ");" .SH "ARGUMENTS" .PP \fIreq\fR .RS 4 request handle .RE .PP \fIsrc\fR .RS 4 source scatter / gather list .RE .PP \fIdst\fR .RS 4 destination scatter / gather list .RE .PP \fIcryptlen\fR .RS 4 number of bytes to process from \fIsrc\fR .RE .PP \fIiv\fR .RS 4 IV for the cipher operation which must comply with the IV size defined by \fBcrypto_aead_ivsize\fR .RE .SH "DESCRIPTION" .PP Setting the source data and destination data scatter / gather lists which hold the associated data concatenated with the plaintext or ciphertext\&. See below for the authentication tag\&. .PP For encryption, the source is treated as the plaintext and the destination is the ciphertext\&. For a decryption operation, the use is reversed \- the source is the ciphertext and the destination is the plaintext\&. .PP For both src/dst the layout is associated data, plain/cipher text, authentication tag\&. .PP The content of the AD in the destination buffer after processing will either be untouched, or it will contain a copy of the AD from the source buffer\&. In order to ensure that it always has a copy of the AD, the user must copy the AD over either before or after processing\&. Of course this is not relevant if the user is doing in\-place processing where src == dst\&. .PP IMPORTANT NOTE AEAD requires an authentication tag (MAC)\&. For decryption, the caller must concatenate the ciphertext followed by the authentication tag and provide the entire data stream to the decryption operation (i\&.e\&. the data length used for the initialization of the scatterlist and the data length for the decryption operation is identical)\&. For encryption, however, the authentication tag is created while encrypting the data\&. The destination buffer must hold sufficient space for the ciphertext and the authentication tag while the encryption invocation must only point to the plaintext data size\&. The following code snippet illustrates the memory usage buffer = kmalloc(ptbuflen + (enc ? authsize : 0)); sg_init_one(sg, buffer, ptbuflen + (enc ? authsize : 0)); aead_request_set_crypt(req, sg, sg, ptbuflen, iv); .SH "AUTHORS" .PP \fBStephan Mueller\fR <\&smueller@chronox.de\&> .RS 4 Author. .RE .PP \fBMarek Vasut\fR <\&marek@denx.de\&> .RS 4 Author. .RE .SH "COPYRIGHT" .br