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

İSİM

       encrypt - 64 bitlik iletileri şifreler
       setkey - encrypt() tarafından kullanılan anahtarı belirler
       encrypt_r - 64 bitlik iletileri şifreler (evresel)
       setkey_r - encrypt_r() tarafından kullanılan anahtarı 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);
       Bunların herbiri -lcrypt ile ilintileme gerektirir.

AÇIKLAMA

       Bu  işlevler  64  bitlik  iletileri  şifreler  ve deşifrelerler. setkey() işlevi encrypt()
       işlevi tarafından kullanılan anahtarı belirler. Burada kullanılan anahtar parametresi  bir
       bayt  dizisidir  ve  her  bayt  1 ya da 0 sayısal değerine sahiptir.  anahtar[n] dizisinin
       indis değeri n=8*i-1 olan elemanları yoksayılır, bu durumda asıl anahtar uzunluğu  56  bit
       olur.

       setkey()  işlevi  kendine  aktarılan  tamponu  im  olarak  0  verilmişse  şifreleyerek,  0
       verilmişse  deşifreleyerek  değiştirir.  anahtar  parametresi  gibi  blok  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.
       setkey_r()  ve  encrypt_r()  işlevleri  evreseldir.  ve  anahtar  verisini  saklamak  için
       crypt_data veri yapısını kullanırlar:

       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ÖNÜŞ DEĞERİ

       Bu işlevler herhangi bir değer döndürmezler.

HATALAR

       Yukarıdaki  işlevler  çağrılmadan önce errno değişkeni sıfırlanır. Başarı durumunda değeri
       değişmez.

       ENOSYS İşlev  kütüphanede  bulunmamaktadır  (Örneğin,  ABD'nin  ihracat  sınırlamalarından
              dolayı).

ÖRNEK

       Bu  örneği  glibc2.2  ile  derlemek  için  libcrypt ile ilintilemeniz gerekir. Anlamlı bir
       çalıştırma  için  anahtar[]  ve  ileti[]   dizilerini   anlamlı   bir   bit   kalıbı   ile
       doldurmalısınız.   crypt.h   başlık   dosyasının   setkey()   ve   encrypt()  işlevlerinin
       prototiplerini koşulsuz olarak verdiğini unutmayın.

       #include <crypt.h>

       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 */
       }

NOTLAR

       glibc2.2'de bu işlevler DES algoritmasını kullanır.

UYUMLULUK

       encrypt() ve setkey() işlevleri SVID, SUSv2 ve POSIX 1003.1-2001  uyumludur.   encrypt_r()
       ve setkey_r() işlevleri  ise GNU oluşumudur.

İLGİLİ BELGELER

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

ÇEVİREN

       Emin İslam Tatlı <eminislam (at) web.de>, Nisan 2004