Provided by:
manpages-tr_1.0.5.1-2_all 
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