---
name: "shishi_n_fold"
section: "3"
platform: "linux"
package: "shishi-doc"
version: "1.0.3-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/shishi_n_fold"
---

# shishi\_n\_fold(3)

API function

## NAME

shishi\_n\_fold - API function

## SYNOPSIS

**#include \<shishi.h\>**

**int shishi\_n\_fold(Shishi \*** *handle***, const char \*** *in***, size\_t** *inlen***, char \*** *out***, size\_t** *outlen***);**

## ARGUMENTS

- Shishi \* handle

  shishi handle as allocated by **shishi\_init()**.

- const char \* in

  input array with data to decrypt.

- size\_t inlen

  size of input array with data to decrypt ("M").

- char \* out

  output array with decrypted data.

- size\_t outlen

  size of output array ("N").

## DESCRIPTION

Fold data into a fixed length output array, with the intent to give each input bit approximately equal weight in determining the value of each output bit.

The algorithm is from "A Better Key Schedule For DES-like Ciphers" by Uri Blumenthal and Steven M. Bellovin, http://www.research.att.com/~smb/papers/ides.pdf, although the sample vectors provided by the paper are incorrect.

## RETURN VALUE

Returns **SHISHI\_OK** iff successful.

## REPORTING BUGS

Report bugs to \<bug-shishi@gnu.org\>. GNU Shishi home page: http://www.gnu.org/software/shishi/ General help using GNU software: http://www.gnu.org/gethelp/

## COPYRIGHT

Copyright © 2002-2022 Simon Josefsson.\
 Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.

## SEE ALSO

The full documentation for **shishi** is maintained as a Texinfo manual.  If the **info** and **shishi** programs are properly installed at your site, the command

-

  **info shishi**

should give you access to the complete manual.
