<- ^ -> [Contents]
Предыдущий: 3. Реализация файловой системы Выше: 3. Реализация файловой системы Следующий: 3.2 Модификация mount

3.1 Модификация mkfs

В данной реализации файловой системы ext2_crypt в стандартной программе mkfs была сделана дополнительная поддиректория e2crfsprogs-1.12, в которой реализованы все средства, необходимые для создания файловой системы такого типа.

Код, воплощающий в жизнь способ запроса пароля, находится в файле misk/mke2crfs.c 1 в функции main(...). Выглядит он следующим образом: /* * Getting the password ... */ passwd = getpass("Enter password: "); if(!passwd) { fprintf(stderr,"Warning: your filesystem will not be crypted\n"); } /* * Putting the password into the superblock... */ while(*passwd != '\0') fs->password_key += *(passwd++);

Тот факт, что для расположения этого кода была выбрана именно функция main(...), обусловлен тем, что, в отличии от большинства подходящих для размещения кода других функций, эта функция вызывается только однажды с процессе выполнения программы, следовательно, пароль будет спрошен только один раз, что, в свою очередь, и подразумевалось в постановке исходной задачи.

Что касается шифрования суперблока, то оно осуществляется в файле lib/ext2_crypt_fs/closefs.c в функции ext2_crypt_fs_flush(...). Именно в этой функции происходит запись заполненного суперблока на диск, шифрование же происходит перед самым записыванием.