Provided by: manpages-tr_1.0.5.1-2_all bug

ISIM

       encrypt - 64 bitlik iletileri sifreler
       setkey - encrypt() tarafindan kullanilan anahtari belirler
       encrypt_r - 64 bitlik iletileri sifreler (evresel)
       setkey_r   -   encrypt_r()   tarafindan  kullanilan  anahtari  belirler
       (evresel)

KULLANIM

       #define _XOPEN_SOURCE
       #include <unistd.h>

       void encrypt (char blok[64], int im);

       #define _XOPEN_SOURCE
       #include <stdlib.h>

       void setkey (const char *anahtar);

       #define _GNU_SOURCE
       #include <crypt.h>

       void setkey_r (const char *anahtar, struct crypt_data *veri)
       void encrypt_r (char *blok, int im, struct crypt_data *veri);
       Bunlarin herbiri -lcrypt ile ilintileme gerektirir.

A,CIKLAMA

       Bu islevler 64 bitlik iletileri  sifreler  ve  desifrelerler.  setkey()
       islevi encrypt() islevi tarafindan kullanilan anahtari belirler. Burada
       kullanilan anahtar parametresi bir bayt dizisidir ve her bayt 1 ya da 0
       sayisal  degerine  sahiptir.  anahtar[n] dizisinin indis degeri n=8*i-1
       olan elemanlari yoksayilir, bu durumda asil  anahtar  uzunlugu  56  bit
       olur.

       setkey()  islevi  kendine  aktarilan  tamponu  im  olarak  0 verilmisse
       sifreleyerek,   0   verilmisse   desifreleyerek   degistirir.   anahtar
       parametresi   gibi   blok   parametresi   de  sifrelenmis  degerin  bit
       gosteriminin vektorudur. Sonuc ayni vektor icinde doner.

       Bu iki islev evresel  degildir,  yani  anahtar  verisi  duragan  bellek
       bolgesinde saklanir. setkey_r() ve encrypt_r() islevleri evreseldir. ve
       anahtar verisini saklamak icin crypt_data veri yapisini kullanirlar:

       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;
       };

D"ON"U,S DEGERI

       Bu islevler herhangi bir deger dondurmezler.

HATALAR

       Yukaridaki islevler cagrilmadan once errno degiskeni sifirlanir. Basari
       durumunda degeri degismez.

       ENOSYS Islev  kutuphanede  bulunmamaktadir  (Ornegin,  ABD'nin  ihracat
              sinirlamalarindan dolayi).

"ORNEK

       Bu  ornegi  glibc2.2  ile  derlemek  icin  libcrypt  ile  ilintilemeniz
       gerekir.  Anlamli  bir  calistirma icin anahtar[] ve ileti[] dizilerini
       anlamli bir bit kalibi ile doldurmalisiniz. crypt.h  baslik  dosyasinin
       setkey()  ve  encrypt()  islevlerinin  prototiplerini  kosulsuz  olarak
       verdigini unutmayin.

       #include <crypt.h>

       main() {
         char anahtar[64];    /* anahtarin bit kalibi */
         char ileti[64];      /* iletinin bit kalibi */
         setkey(anahtar);
         encrypt(ileti, 0);   /* sifreler */
         encrypt(ileti, 1);   /* desifreler */
       }

NOTLAR

       glibc2.2'de bu islevler DES algoritmasini kullanir.

UYUMLULUK

       encrypt() ve  setkey()  islevleri  SVID,  SUSv2  ve  POSIX  1003.1-2001
       uyumludur.  encrypt_r() ve setkey_r() islevleri  ise GNU olusumudur.

ILGILI BELGELER

       cbc_crypt(3), crypt(3), ecb_crypt(3), fcrypt(3).

,CEVIREN

       Emin Islam Tatli <eminislam (at) web.de>, Nisan 2004