1 Inserire una funzione HASH (SHA) ed usarla in tcfs_get(e put)_header.

2 Controllare se servono i semafori
  PS: parrebbe di no. Finora non son serviti. Provare pero' con un uso
  intensivo di TCFS in un sistema multiuser.

  Pero' un sistema di lock mentre si decrypta/encrypta un blocco o piu'
  di un file non sarebbe male.
  Pensavo a na cosa tipo : inode->u.tcfs_i.locked 

3 Controllare il ritorno degli errori (tcfs_get_key) - FATTO.
  prima se non c'era la chiave si tornava -EACCES, ora? - FATTO.
  P:
	Caso:			Valore di ritorno:	Valore da ritornare:
	- file non sicuro	-1			-
	- file sicuro
		- ks != NULL	ks			-
		- ks = NULL	NULL			-EACCES

4 Controllare se e' giusto crittografare *->name in loco oppure se e' piu'
  giusto compiarlo in una var temporanea e crittarla.
  nfs_readdir etc...
  In pratica puo' o no verificarsi il caso in cui si ricrittografi lo stesso
  nome piu' volte?
  - credo convenga mantenere il nome cifrato nella struct dentry
    (dentry->d_name.name) e decifrarlo ad ogni accesso.
    In questo modo gli eventuali log di NFS visualizzano il nome cifrato e
    non quello in chiaro. Leggasi show_dentry. Uhmm....non parrebbe essere
    fatto cosi' da henry.
  FATTO.

5 Decidere come operare con i flag per le directory. Per il momento ci siamo
  basati ancora su xattrd. E' il momento di eliminarlo definitivamente.
  Due sono le possibili soluzioni. Attualmente.
  - usare il nome del file (i primi TCFS_HEADER_SIZE byte)
  - usare un file nascosto nella directory. La sicurezza non e' compromessa,
    perche' cosi' come un bruto puo' cancellare o rinominare il file, cosi'
    lo stesso tizio puo' fare un chmod sulla dir e togliere il flag X.
    Propendo per questa scelta.
    Si crea un file .tcfs e ci si mette dentro l'header TCFS, cosi' riduco
    anche le modifiche alla tcfs_put_header e tcfs_get_header :))
    Risulta piu' flessibile (se estendiamo l'header non abbiamo problemi di
    spazio) e piu'...elegante.

  SOLUZIONE GIUPER+LUICAT:
    Conserviamo in un file (.tcfs [sempre e comunque]) sia l'header della
    directory stessa, sia gli hash dei metadata della directory stessa.

  SOLUZIONE ADOTTATA:
    si crea un file .tcfs con l'header della directory quando questaq viene
    cifrata. si rimuove tale file quando la directory perde il flag X.
    FATTO.

6 Modificare la struttura, nell'inode, degli attributi di TCFS.
  Togliere pathname e ristrutturarla. - FATTO.

7 Nota: il campo 'pathname' non serve piu' e va eliminato. Era stato lasciato
  per il problema delle directory di cui sopra. - FATTO.

8 Controllare bene il funzionamento (ed i calcoli) nella tcfs_get(e put)_header.
  - FATTO.

9 Raggruppare questo codice in una funzione:

        if (ks!=-1) {
                int len=strlen (silly);

                cryptedname=kmalloc (len);
                memcpy (cryptedname, dentry->d_name.name, len);
                if (strcmp (cryptedname, ".") &&
                        strcmp (cryptedname, "..")) {
                                k=len+1;
                                tcfs_encrypt (crytpedname,
                                                (k&0xFFF8)+8,ks,NULL);
                                tcfsencode(cryptedname,(k&0xFFF8)+8);
                        }

        } else {
                cryptedname=dentry->d_name.name;
        }

  La funzione sara': char *tcfs_get_newname (char *oldname, void *key)

10 Nella struttura dell'inode di TCFS, sostituire i flag con la
   struct tcfsheader, cosi' basta solo ricopiarla. - FATTO e ottimizzato
   con una nuova tcfs_inode_header (piu' piccola [tolto il PAD]).

11 Trovata una soluzione piu' veloce che dovrebbe risolvere anche il
   il problema dello stale fh.
   Metto la struct tcfsheader nell'inode (nella struct tcfs_inode_info).
   La tcfs_get_key controlla se gia' c'e' questo header nell'inode, in
   caso contrario, e solo in caso contratio, leggo dal file l'header TCFS
   ed installo l'header nella struct.
   Cosi' facendo, elimino l'union di henry (bf, spure etc), e, se tutto
   va come spero, non c'e' bisogno di portarsi appresso il file handler.
   - FATTO e l'handler me lo so dovuto portare appreso.

12 ATTENZIONE ATTENZIONE!
   Controllare la tcfs_rmdir...e' sbagliata.
