1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166
|
.\" Copyright 2000 Nicolas Lichtmaier <nick@debian.org>
.\" Created 2000-07-22 00:52-0300
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" Modified 2002-07-23 19:21:35 CEST 2002 Walter Harms
.\" <walter.harms@informatik.uni-oldenburg.de>
.\"
.\" Modified 2003-04-04, aeb
.\"
.\" Japanese Version Copyright (c) 2000-2004 Yuichi SATO
.\" all rights reserved.
.\" Translated Sun Sep 24 06:18:14 JST 2000
.\" by Yuichi SATO <sato@complex.eng.hokudai.ac.jp>
.\" Updated & Modified Sun Sep 7 13:20:43 JST 2003
.\" by Yuichi SATO <ysato444@yahoo.co.jp>
.\" Updated & Modified Sat Jan 17 01:27:31 JST 2004 by Yuichi SATO
.\"
.\"WORD: encrypt Ź沽
.\"WORD: decrypt 沽
.\"
.TH ENCRYPT 3 2003-04-04 "" "Linux Programmer's Manual"
.SH ̾
encrypt, setkey, encrypt_r, setkey_r \- 64 ӥåȤΥåŹ沽
.SH
.B #define _XOPEN_SOURCE
.br
.B #include <unistd.h>
.sp
.BI "void encrypt(char " block "[64], int " edflag );
.sp
.B #define _XOPEN_SOURCE
.br
.B #include <stdlib.h>
.sp
.BI "void setkey(const char *" key );
.sp
.B #define _GNU_SOURCE
.br
.B #include <crypt.h>
.sp
.BI "void setkey_r(const char *" key ", struct crypt_data *" data );
.br
.BI "void encrypt_r(char *" block ", int " edflag \
", struct crypt_data *" data );
.sp
δؿ \fI\-lcrypt\fP ǥɬפ롣
.SH
δؿϡ64 ӥåȤΥåΰŹ沽沽Ԥ
.BR setkey ()
ؿ
.BR encrypt ()
ˤäƻȤŹ渰ꤹ롣
ǻȤ
.I key
64 ХȤǤꡢƥХȤϿ 1 ޤ 0 Ǥ롣
n=8*i-1 ФХ key[n] ̵뤵Τǡ
ͭʰŹ渰Ĺ 56 ӥåȤˤʤ롣
.PP
.BR encrypt ()
ؿϡ
.I edflag
0 ξϰŹ沽1 Ϥ줿沽Ȥ褦ˡ
Ϥ줿Хåեѹ롣
key Ʊͤˡ
.I block
ϥɤ줿ºݤͤɽӥåȤǤ롣
̤ϤƱȤä֤롣
.PP
2 Ĥδؿϥꥨȥ (reentrant) ǤϤʤ
ĤޤŹ渰ǡŪΰ¸롣
ؿ
.BR setkey_r ()
.BR encrypt_r ()
ϥꥨȥȤʥСǤ롣
δؿϰŹ渰ǡݻ뤿˰ʲΤ褦ʹ¤ΤȤ
.in +4n
.nf
struct crypt_data {
char keysched[16 * 8];
char sb0[32768];
char sb1[32768];
char sb2[32768];
char sb3[32768];
char crypt_3_buf[14];
char current_salt[2];
long int current_saltbits;
int direction;
int initialized;
};
.fi
.in
.PP
.BR setkey_r ()
ƤӽФˤϡ
.I data\->initialized
0 ꤹ뤳ȡ
.SH ֤
δؿϡʤˤ֤ͤʤ
.SH 顼
嵭δؿƤӽФ
.I errno
0 ꤹ뤳ȡ
硢ͤѹʤ
.TP
.B ENOSYS
(㤨аΥꥫ罰͢еʤɤˤ)
δؿƤʤ
.SH
ؿ
.BR encrypt ()
.BR setkey ()
SVr4, SUSv2, and POSIX.1-2001 ˽롣
ؿ
.BR encrypt_r ()
.BR setkey_r ()
GNU ĥǤ롣
.SH
glibc 2.2 Ǥϡδؿ DES 르ꥺȤ
.SH
glibc 2.2 ǥѥ뤹ˤ libcrypt ȥɬפ롣
ºݤư뤿ˤϡ
.I key[]
.I txt[]
ͭʥӥåȥѥꤷʤФʤʤ
.sp
.nf
#define _XOPEN_SOURCE
#include <unistd.h>
#include <stdlib.h>
int
main(void)
{
char key[64]; /* bit pattern for key */
char txt[64]; /* bit pattern for messages */
setkey(key);
encrypt(txt, 0); /* encode */
encrypt(txt, 1); /* decode */
}
.fi
.SH Ϣ
.BR cbc_crypt (3),
.BR crypt (3),
.BR ecb_crypt (3),
.\" .BR fcrypt (3),
.BR feature_test_macros (7)
|