> Memang benar, process open berulang hingga menemukan file yang ditemukan
> karena process ini mengikuti path_resolution (coba man open) dari root
> directory / hingga file tsb ditemukan, dengan catatan jika file adalah
> symbolic link nanti akan terjadi stack overflow di kernel dan biasanya
> akan return ELOOP atau ENAMETOOLONG. Jadi lebih baik tempatkan file yang
> dicari sesuai directory yang diminta.

Ok .., thanks untuk pencerahan masalah ini ...


>
> Untuk email anda sebelumnya, untuk bagian :
>
>         if(!password)
>         {
>                 r = -EINVAL;
>                 goto out;
>         }
>
>         if((r = LUKS_open_any_key(options->device, password,
> passwordLen, &hdr, &mk, backend)) < 0) {
>                 set_error("No key available with this passphrase.\n");
>                 goto out1;
>         }
>
> Jika ada nilai return 0 (false) dari fungsi get_key (ini tergantung
> apakah bisa menulis ke stdin terminal atau tidak) setelah 3 kali
> mencoba, maka akan ke non password condition :
>
>             if(!password)
>             {
>                 r = -EINVAL;
>                 goto out;
>             }
>
> maka akan return -ENINVAL dan jump ke out (bukan dilanjutkan ke kondisi
> berikutnya). Untuk kondisi ini maka akan jump ke out dan mengembalikan
> nilai r (= -EINVAL)

Ok ...

> out :
>          LUKS_dealloc_masterkey(mk);
>          if (r == -EPERM && tries > 0)
>                 goto start;
>          return r;
>
> Sementara jika ternyata password yang diminta adalah benar, maka akan
> berlanjut ke kondisi :
>
>  if((r = LUKS_open_any_key(options->device, password, passwordLen, &hdr,
> &mk, backend)) < 0)
>          {
>                 set_error("No key available with this passphrase.\n");
>                 goto out1;
>          }
>
> dan kemudian akan dicheck nilai return dari r.
>

Nah .., ketahuan kutunya dimana ..:), pemeriksahaan password nya sudah
benar berarti,
yang jadi masalah adalah difungsi LUKS_open_key() pada keymanage.c
(http://bakmi.wordpress.com/2007/09/18/luks_open_key-cryptsetup-105lukskeymanagec/)
, tepatnya pada
baris code :

r = (memcmp(checkHashBuf,hdr->mkDigest, LUKS_DIGESTSIZE) == 0)?0:-EPERM;

operasi ini mereturn nilai -1, yang artinya buffer1 dan buffer dua
tidak sama...

Kalau ada waktu coba, dilihat ..., apa dugaan saya benar ?

Saya beri info lagi nanti ....

Thanks!

Salam
Wildan

-- 
---
Person who say it cannot be done should not interrupt person doing it.
Coz.....
Miracles are closer than you think ...
------------
http://wildanm.fisika.ui.edu
HP: 08888378594
Y! : hawking_123

-- 
FAQ milis di http://wiki.linux.or.id/FAQ_milis_tanya-jawab
Unsubscribe: kirim email ke [EMAIL PROTECTED]
Arsip dan info milis selengkapnya di http://linux.or.id/milis

Kirim email ke