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

glibc3                                            4 Nisan 2003                                        encrypt(3)