Gestione di file e directory crittografati

Un programmatore o un utente può contrassegnare una directory o un file come crittografato. Un file contrassegnato come crittografato viene crittografato dal file system NTFS usando il driver di crittografia corrente. Se in un secondo momento il file viene contrassegnato come non crittografato, viene decrittografato e lasciato in uno stato di testo normale (non protetto).

Le directory non sono crittografate. Per impostazione predefinita, in una directory "crittografata" tutti i nuovi file nella directory vengono crittografati in fase di creazione. Un utente deve modificare specificamente lo stato di un nuovo file in modo da decrittografare se l'utente non vuole che il file venga crittografato. Una directory crittografata è visibile. Per rendere inaccessibile una directory ad altri utenti, usare i metodi standard del controllo di accesso.

Le funzioni di crittografia non possono essere usate con l'API Backup.

Per crittografare un nuovo file, usare la funzione CreateFile con il flag di FILE_ATTRIBUTE_ENCRYPTED . Per crittografare un file esistente, usare la funzione EncryptFile . Tutti i flussi di dati nel file vengono crittografati. Se il file è già crittografato, EncryptFile non restituisce alcun valore diverso da zero, che indica l'esito positivo. Se il file è compresso, EncryptFile decompresse il file prima di crittografarlo.

Per decrittografare un file crittografato, usare la funzione DecryptFile. Se il file non è crittografato, DecryptFile non restituisce alcun valore diverso da zero che indica l'esito positivo.

La funzione EncryptionDisable disabilita o abilita la crittografia della directory indicata e i file presenti. Non influisce sulla crittografia delle sottodirectory sotto la directory indicata.

Per recuperare lo stato di crittografia di un file, usare la funzione FileEncryptionStatus . In alternativa, chiamare la funzione GetFileAttributes ed esaminare il flag FILE_ATTRIBUTE_ENCRYPTED nel valore restituito.

CopyFile e CopyFileEx tentano di crittografare il file di destinazione con le chiavi usate nella crittografia del file di origine. Se non è possibile eseguire questa operazione, entrambe le funzioni tentano di crittografare il file di destinazione con chiavi predefinite. Se non è possibile eseguire entrambi questi metodi, CopyFile e CopyFileEx non riescono con un errore di ERROR_ENCRYPTION_FAILED. Se si vuole che CopyFileEx completi l'operazione di copia anche quando il file di destinazione non può essere crittografato, includere il flag di COPY_FILE_ALLOW_DECRYPTED_DESTINATION nel valore del parametro dwCopyFlags nella chiamata a CopyFileEx.