1 .\" Copyright 2000 Nicolas Lichtmaier <nick@debian.org>
2 .\" Created 2000-07-22 00:52-0300
4 .\" This is free documentation; you can redistribute it and/or
5 .\" modify it under the terms of the GNU General Public License as
6 .\" published by the Free Software Foundation; either version 2 of
7 .\" the License, or (at your option) any later version.
9 .\" The GNU General Public License's references to "object code"
10 .\" and "executables" are to be interpreted as the output of any
11 .\" document formatting or typesetting system, including
12 .\" intermediate and printed output.
14 .\" This manual is distributed in the hope that it will be useful,
15 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
16 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 .\" GNU General Public License for more details.
19 .\" Modified 2002-07-23 19:21:35 CEST 2002 Walter Harms
20 .\" <walter.harms@informatik.uni-oldenburg.de>
22 .\" Modified 2003-04-04, aeb
24 .\" Japanese Version Copyright (c) 2000-2004 Yuichi SATO
25 .\" all rights reserved.
26 .\" Translated Sun Sep 24 06:18:14 JST 2000
27 .\" by Yuichi SATO <sato@complex.eng.hokudai.ac.jp>
28 .\" Updated & Modified Sun Sep 7 13:20:43 JST 2003
29 .\" by Yuichi SATO <ysato444@yahoo.co.jp>
30 .\" Updated & Modified Sat Jan 17 01:27:31 JST 2004 by Yuichi SATO
32 .\"WORD: encrypt °Å¹æ²½
33 .\"WORD: decrypt Éü¹æ²½
35 .TH ENCRYPT 3 2003-04-04 "" "Linux Programmer's Manual"
37 encrypt, setkey, encrypt_r, setkey_r \- 64 ¥Ó¥Ã¥È¤Î¥á¥Ã¥»¡¼¥¸¤ò°Å¹æ²½¤¹¤ë
39 .B #define _XOPEN_SOURCE
41 .B #include <unistd.h>
43 .BI "void encrypt(char " block "[64], int " edflag );
45 .B #define _XOPEN_SOURCE
47 .B #include <stdlib.h>
49 .BI "void setkey(const char *" key );
51 .B #define _GNU_SOURCE
55 .BI "void setkey_r(const char *" key ", struct crypt_data *" data );
57 .BI "void encrypt_r(char *" block ", int " edflag \
58 ", struct crypt_data *" data );
60 ¤³¤ì¤é¤Î´Ø¿ô¤Ï \fI\-lcrypt\fP ¤Ç¥ê¥ó¥¯¤¹¤ëɬÍפ¬¤¢¤ë¡£
62 ¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢64 ¥Ó¥Ã¥È¤Î¥á¥Ã¥»¡¼¥¸¤Î°Å¹æ²½¤ÈÉü¹æ²½¤ò¹Ô¤¦¡£
66 ¤Ë¤è¤Ã¤Æ»È¤ï¤ì¤ë°Å¹æ¸°¤òÀßÄꤹ¤ë¡£
69 ¤Ï 64 ¥Ð¥¤¥È¤ÎÇÛÎó¤Ç¤¢¤ê¡¢³Æ¥Ð¥¤¥È¤Ï¿ôÃÍ 1 ¤Þ¤¿¤Ï 0 ¤Ç¤¢¤ë¡£
70 n=8*i-1 ¤ËÂФ¹¤ë¥Ð¥¤¥È key[n] ¤Ï̵»ë¤µ¤ì¤ë¤Î¤Ç¡¢
71 ͸ú¤Ê°Å¹æ¸°¤ÎŤµ¤Ï 56 ¥Ó¥Ã¥È¤Ë¤Ê¤ë¡£
76 ¤¬ 0 ¤Î¾ì¹ç¤Ï°Å¹æ²½¤·¡¢1 ¤¬ÅϤµ¤ì¤¿¾ì¹ç¤ÏÉü¹æ²½¤¹¤ë¤È¤¤¤¦¤è¤¦¤Ë¡¢
77 ÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤òÊѹ¹¤¹¤ë¡£
82 ¤Ï¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿¼ÂºÝ¤ÎÃͤòɽ¸½¤¹¤ë¥Ó¥Ã¥È¤ÎÇÛÎó¤Ç¤¢¤ë¡£
83 ·ë²Ì¤Ï¤³¤ÎƱ¤¸ÇÛÎó¤ò»È¤Ã¤ÆÊÖ¤µ¤ì¤ë¡£
85 ¤³¤ì¤é 2 ¤Ä¤Î´Ø¿ô¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È (reentrant) ¤Ç¤Ï¤Ê¤¤¡£
86 ¤Ä¤Þ¤ê°Å¹æ¸°¥Ç¡¼¥¿¤ÏÀÅŪ¤ÊÎΰè¤ËÊݸ¤µ¤ì¤ë¡£
91 ¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È¤Ê¥Ð¡¼¥¸¥ç¥ó¤Ç¤¢¤ë¡£
92 ¤³¤ì¤é¤Î´Ø¿ô¤Ï°Å¹æ¸°¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¤¿¤á¤Ë°Ê²¼¤Î¤è¤¦¤Ê¹½Â¤ÂΤò»È¤¦¡£
97 char keysched[16 * 8];
102 char crypt_3_buf[14];
103 char current_salt[2];
104 long int current_saltbits;
113 .I data\->initialized
114 ¤ò 0 ¤ËÀßÄꤹ¤ë¤³¤È¡£
116 ¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¤Ê¤Ë¤âÃͤòÊÖ¤µ¤Ê¤¤¡£
118 ¾åµ¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë
120 ¤ò 0 ¤ËÀßÄꤹ¤ë¤³¤È¡£
121 À®¸ù¤·¤¿¾ì¹ç¡¢¤³¤ÎÃͤÏÊѹ¹¤µ¤ì¤Ê¤¤¡£
124 (Î㤨¤Ð°ÊÁ°¤Î¥¢¥á¥ê¥«¹ç½°¹ñÍ¢½Ðµ¬À©¤Ê¤É¤Ë¤è¤ê)
125 ¤³¤Î´Ø¿ô¤¬Ä󶡤µ¤ì¤Æ¤¤¤Ê¤¤¡£
131 ¤Ï SVr4, SUSv2, and POSIX.1-2001 ¤Ë½àµò¤¹¤ë¡£
138 glibc 2.2 ¤Ç¤Ï¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï DES ¥¢¥ë¥´¥ê¥º¥à¤ò»È¤¦¡£
140 ¤³¤ÎÎã¤ò glibc ¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Ë¤Ï libcrypt ¤È¥ê¥ó¥¯¤¹¤ëɬÍפ¬¤¢¤ë¡£
141 ¼ÂºÝ¤ËÆ°ºî¤µ¤»¤ë¤¿¤á¤Ë¤Ï¡¢ÇÛÎó
145 ¤Ë͸ú¤Ê¥Ó¥Ã¥È¥Ñ¥¿¡¼¥ó¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
148 #define _XOPEN_SOURCE
155 char key[64]; /* bit pattern for key */
156 char txt[64]; /* bit pattern for messages */
159 encrypt(txt, 0); /* encode */
160 encrypt(txt, 1); /* decode */
168 .BR feature_test_macros (7)