# 请解释一下内核Cryptographic options的配置

## punkid

这个问题在linuxfans公社问过了，没人回答。希望在这里大家能帮我解决一下疑惑。

为了让内核支持reiser4,编译内核时把Cyptographic选项绝大部分都打勾了，但不知道这些选项各是什么意思？请帮忙解释一下好吗？

```
# Cryptographic options

CONFIG_CRYPTO=y

CONFIG_CRYPTO_HMAC=y

CONFIG_CRYPTO_NULL=y

CONFIG_CRYPTO_MD4=y

CONFIG_CRYPTO_MD5=y

CONFIG_CRYPTO_SHA1=y

CONFIG_CRYPTO_SHA256=y

CONFIG_CRYPTO_SHA512=y

CONFIG_CRYPTO_WP512=y

# CONFIG_CRYPTO_TGR192 is not set

CONFIG_CRYPTO_DES=y

CONFIG_CRYPTO_BLOWFISH=y

CONFIG_CRYPTO_TWOFISH=y

CONFIG_CRYPTO_SERPENT=y

CONFIG_CRYPTO_AES_586=y

CONFIG_CRYPTO_CAST5=y

CONFIG_CRYPTO_CAST6=y

CONFIG_CRYPTO_TEA=y

CONFIG_CRYPTO_ARC4=y

CONFIG_CRYPTO_KHAZAD=y

CONFIG_CRYPTO_ANUBIS=y

CONFIG_CRYPTO_DEFLATE=y

# CONFIG_CRYPTO_LZF is not set

CONFIG_CRYPTO_MICHAEL_MIC=y

CONFIG_CRYPTO_CRC32C=y

CONFIG_CRYPTO_TEST=y
```

----------

## druggo

嘿伙计，支持reiser4并不一定需要选择这个吧？

看help好象是提供加密算法的核心API

我自己虽然选了几个，但都是模块

CONFIG_CRYPTO=y

CONFIG_CRYPTO_MD5=m

CONFIG_CRYPTO_SHA1=m

CONFIG_CRYPTO_SHA256=m

CONFIG_CRYPTO_SHA512=m

CONFIG_CRYPTO_CRC32C=m

具体我也不清楚，呵呵，难道是你看的安装说明是要加密文件系统？！不然何必非要选这个呢？

----------

## punkid

我用的是morph sources，必须选这个，不然filesystem里找不到reiser4的选项。

----------

## akar

　　不會吧，我也是用morph-sources，如果要用reiser4檔案系統，就要在告訴config，你要使用

　　１。　“Prompt for development and/or incomplete code/drivers”(標示為不穩定的驅動)

　　２。　disable 4k-stacks （在 "Kernel hacking" 配置區內）

　　應該不用　核心加密的模塊。

----------

## punkid

但是在文档中也提到

```
Symbol:REISER4_FS [=y]

Prompt: Reiser4 (EXPERIMENTAL)

  Defined at fs/reiser4/Kconfig:l

  Depends on:EXPERIMENTAL && !4KSTACKS && ZLIB_INFLATE

  Location:

    ->File Systems
```

reiser4还依赖zlib_inflate，我也搞不清那是个什么东西，只知道要选中Cyptographic的选项才能找到zlib_inflate,开启reiser4模块支持。

----------

## tiancongxin

gentoo-sources现在支持reiser4了么

----------

## akar

 *tiancongxin wrote:*   

> gentoo-sources现在支持reiser4了么

 

　　還沒有！我們在討論另一個不在gentoo主檥內的熱門Kernel補釘版 morph-sources。 版主Eric那篇快若刀鋒有介紹。

 *punkid wrote:*   

> 
> 
> reiser4还依赖zlib_inflate，我也搞不清那是个什么东西，只知道要选中Cyptographic的选项才能找到zlib_inflate,开启reiser4模块支持。
> 
> 

 

　　那真的奇怪，我的.config不用。我沒有把加密編進去，zlib_inflate 和　zlib_deflate 都是編成模塊。可以幫忙查一下ZLIB_INFLATE在文檔內的　Depends on:　。。。　嗎？

　　而且粗看了一下核心源碼內的lib/zlib_inflate內的代碼和它包括（include）的代碼都沒有CRYPTO的踪影。

----------

## punkid

应该是依赖于Cyptographic里的Deflate compression algorithm,我只勾选了这个，reiser4的选项就出现了，关闭这个，打开其他的Cyptographic选项也没用。

另外，我查到

```
Symbol: ZLIB_DEFLATE [=y]                                               

   Selected by: PPP_DEFLATE && PPP || JFFS2_ZLIB && JFFS2_FS || CRYPTO_D 
```

其中的CRYPTO_D就是Deflate compression algorithm。

而ZLIB_INFLATE的帮助显示

```
Symbol: ZLIB_INFLATE [=y]                                               

   Selected by: BINFMT_ZFLAT && BINFMT_FLAT || PPP_DEFLATE && PPP || ZIS 
```

根据PPP_DEFLATE又找到了

```
Symbol: PPP_DEFLATE [=n]                                              

   Prompt: PPP Deflate compression                                         

     Defined at drivers/net/Kconfig:2386                                   

     Depends on: PPP                                                       

     Location:                                                             

       -> Device Drivers                                                   

         -> Networking support                                             

           -> PPP (point-to-point protocol) support (PPP [=y])             

     Selects: ZLIB_INFLATE && ZLIB_DEFLATE 
```

这样，选了ZLIB_INFLATE与ZLIB_DEFLATE相联，而ZLIB_DEFALTE又与CRYPTO_D相联了。

----------

## akar

 *punkid wrote:*   

> 应该是依赖于Cyptographic里的Deflate compression algorithm,我只勾选了这个，reiser4的选项就出现了，关闭这个，打开其他的Cyptographic选项也没用。
> 
> 另外，我查到
> 
> ```
> ...

 

　　嘻！　好呢，　原來如此。　punkid，我想你是誤打正著了。　其實Reiser4不是依賴CRYPTO_D，而是ZLIB_DEFLATE，　但是因為CRYPTO_D強制依賴ZLIB_DEFLATE，選上CRYPTO_D時，就把 ZLIB_DEFLATE同時也加到編譯以內，所以你就誤認為Reiser4依賴CRYPTO_D。

　　Reiser4　＝＞　不是依賴CRYPTO_D　＝＞而是ZLIB_DEFLATE

　　　　Reiser4　假依賴　CRYPTO_D；

　　　　Reiser4　真依賴　ZLIB_DEFLATE；

　　而我呢，也因為使用了ppp撥號模塊，也把ZLIB_DEFLATE隱性地加到編譯裏面，就算沒有CRYPTO_D也不要緊！！　所以我就不會出現Reiser4選項不能顯示的問題。

謝謝了，增長了知識。

----------

## punkid

thanx,终于搞清楚这几个模块的关系。

我自己也试了一下，果真打开PPP_DEFLATE就可以把Cyptographic全关闭。

同样长知识了。

----------

