.\" http://belgeler.org \- 2009\-10\-29T15:35:47+02:00 .\" Copyright 2000 Nicol?s Lichtmaier .\" 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\N'39'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 .\" .\" .\" Modified 2003\-04\-04, aeb .TH "encrypt" 3 "4 Nisan 2003" "glibc3" "Kriptografik İşlevler" .nh .PD 0 .SH İSİM encrypt \- 64 bitlik iletileri şifreler .br setkey \- encrypt() tarafından kullanılan anahtarı belirler .br encrypt_r \- 64 bitlik iletileri şifreler (evresel) .br setkey_r \- encrypt_r() tarafından kullanılan anahtarı belirler (evresel) .SH KULLANIM .nf #define _XOPEN_SOURCE #include void \fBencrypt\fR (char \fIblok\fR[64], int \fIim\fR); #define _XOPEN_SOURCE #include void \fBsetkey\fR (const char *\fIanahtar\fR); #define _GNU_SOURCE #include void \fBsetkey_r\fR (const char *\fIanahtar\fR, struct crypt_data *\fIveri\fR) void \fBencrypt_r\fR (char *\fIblok\fR, int \fIim\fR, struct crypt_data *\fIveri\fR); .fi Bunların herbiri \fB\-lcrypt\fR ile ilintileme gerektirir. .SH AÇIKLAMA Bu işlevler 64 bitlik iletileri şifreler ve deşifrelerler. \fBsetkey()\fR işlevi \fBencrypt()\fR işlevi tarafından kullanılan anahtarı belirler. Burada kullanılan \fIanahtar\fR parametresi bir bayt dizisidir ve her bayt 1 ya da 0 sayısal değerine sahiptir. \fIanahtar\fR[n] dizisinin indis değeri n=8*i\-1 olan elemanları yoksayılır, bu durumda asıl anahtar uzunluğu 56 bit olur. \fBsetkey()\fR işlevi kendine aktarılan tamponu \fIim\fR olarak 0 verilmişse şifreleyerek, 0 verilmişse deşifreleyerek değiştirir. \fIanahtar\fR parametresi gibi \fIblok\fR parametresi de şifrelenmiş değerin bit gösteriminin vektörüdür. Sonuç aynı vektör içinde döner. Bu iki işlev evresel değildir, yani anahtar verisi durağan bellek bölgesinde saklanır. \fBsetkey_r()\fR ve \fBencrypt_r()\fR işlevleri evreseldir. ve anahtar verisini saklamak için \fBcrypt_data\fR veri yapısını kullanırlar: .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, initialized; }; .fi .SH DÖNÜŞ DEĞERİ Bu işlevler herhangi bir değer döndürmezler. .SH HATALAR Yukarıdaki işlevler çağrılmadan önce \fBerrno\fR değişkeni sıfırlanır. Başarı durumunda değeri değişmez. .br .ns .TP \fBENOSYS\fR İşlev kütüphanede bulunmamaktadır (Örneğin, ABD\N'39'nin ihracat sınırlamalarından dolayı). .PP .SH ÖRNEK Bu örneği glibc2.2 ile derlemek için libcrypt ile ilintilemeniz gerekir. Anlamlı bir çalıştırma için \fIanahtar[]\fR ve \fIileti[]\fR dizilerini anlamlı bir bit kalıbı ile doldurmalısınız. crypt.h başlık dosyasının \fBsetkey()\fR ve \fBencrypt()\fR işlevlerinin prototiplerini koşulsuz olarak verdiğini unutmayın. .nf #include main() { \ char anahtar[64]; /* anahtarın bit kalıbı */ \ char ileti[64]; /* iletinin bit kalıbı */ \ setkey(anahtar); \ encrypt(ileti, 0); /* şifreler */ \ encrypt(ileti, 1); /* deşifreler */ } .fi .SH NOTLAR glibc2.2\N'39'de bu işlevler DES algoritmasını kullanır. .SH UYUMLULUK \fBencrypt()\fR ve \fBsetkey()\fR işlevleri SVID, SUSv2 ve POSIX 1003.1\-2001 uyumludur. \fBencrypt_r()\fR ve \fBsetkey_r()\fR işlevleri ise GNU oluşumudur. .SH İLGİLİ BELGELER \fBcbc_crypt(3)\fR, \fBcrypt(3)\fR, \fBecb_crypt(3)\fR, \fBfcrypt(3)\fR. .SH ÇEVİREN Emin İslam Tatlı , Nisan 2004