## Импорт элементов

Password Safe позволяет импортировать данные о паролях из файлов других форматов. Данные файлы могут быть сформированы другими приложениями, экспортированы из таблиц, или даже составлены вручную в текстовом редакторе.

Password Safe поддерживает следующие форматы:

- Простой текст
- XML
- TXT- и CSV-файлы KeePass V1
- KeePass V2 через CSV-файлы KeePass V1
- XML-файлы KeePass V1 и V2

По окончании операции импорта Password Safe создаёт отчёт, содержащий информацию о выполненной работе и возникших проблемах (если такие были). Содержимое отчёта может быть скопировано в буфер обмена или сохранено на диск в том же каталоге, где находится контейнер. Отчёт можно посмотреть позже с помощью меню «Вид→Отчёты». Отчёт имеет фиксированное имя, зависящее от его типа. При повторении действия и сохранении отчёта на диск, предыдущий отчёт для этого действия перезаписывается. Примечание. Отчёт может содержать важные данные, поэтому возможность сохранения на диск следует использовать с осторожностью.

Примечание. Чтобы импортировать элементы из другого контейнера Password Safe, запустите ещё одну копию Password Safe (должен быть разрешён запуск нескольких экземпляров на вкладке Сервис→Настройки→Система) и откройте нужный контейнер. Затем перетащите из него необходимые элементы или группы в первый контейнер.

### Текстовый формат

Импортируемые текстовые файлы содержат одну или несколько записей о паролях. Поля внутри элемента разделяются специальным символом. Информация об элементе может быть записана в одну или несколько строк. Описание формата импорта из текстового файла находится в разделе Формат текстового экспорта и импорта.

### Настройки импорта из простого текста

Разделитель полей используется для выделения полей в текстовых строках. Также можно указать имя группы, в которую будут помещены все импортированные элементы.

1. Файл→Импортировать из
2. Выберите Простой текст.
3. Укажите параметры импорта из данного файла.
4. Если при экспорте заметок был использован разделитель строк, укажите его, чтобы при импорте он был заменён на перенос строки.
5. Нажмите OK.
6. Выберите текстовый файл для импорта.
7. По окончанию процесса импорта будет выведен диалог с информацией о количестве ошибок и успешно импортированных элементов.

Внимание! если элемент использует «именованную политику», которая отсутствует в текущем контейнере, то импортированному элементу будет назначена «политика по умолчанию».

Внимание! Первая строка импортируемого файла должна содержать список имён столбцов, разделённых табуляцией. Например: «Group/Title Username Password URL». Эта строка создаётся автоматически при экспорте в текст. Для файлов, созданных вручную (или с помощью других утилит), её нужно заполнить или отредактировать в соответствии с форматом.

### XML

XML (eXtensible Markup Language) — распространённый формат для передачи данных между приложениями. Password Safe может импортировать XML-файлы, соответствующие схеме pwsafe.xsd, распространяемой вместе с Password Safe.

При импорте из XML-файла в пустой контейнер, в него также будут импортированы настройки контейнера. Если в контейнере уже есть элементы, поля с настройками игнорируются.

Однако, если XML-файл содержит именованные политики создания паролей, они будут импортированы независимо от того, есть ли в контейнере элементы. При этом, если в контейнере уже присутствует политика с таким же именем, она не будет замещена политикой из XML-файла.

Если импортируемый элемент использует именованную политику, которой нет в текущем контейнере и XML-файле, то ему будет назначена «политика по умолчанию».

Изменения в формате представления даты/времени в XML-файле

До версии 3.26 для экспорта использовался свой формат:

      <name>
        <date>гггг-ММ-дд</date>
        <time>чч:мм:сс</time>
      </name>

Где«name» — любое из имён полей, содержащих дату/время («ctime», «atime», «xtime», «pmtime», «rmtime», «changed»).

Начиная с версии 3.26 экспорт производится в соответствии со стандартом представления даты/времени, определённыым W3C. Версии 3.26 и 3.27 могли импортировать данные в любом из этих представлений, но с версии 3.27 поддерживается только формат из стандарта W3C.

Формат полей с датой/временем согласно стандарту W3C имеет следующее представление:

      <namex>гггг-ММ-ддTчч:мм:сс</namex>

Для того, чтобы можно было отличить теги, записанные в «старом» стиле от «новых», к их именам был добавлен суффикс «x» («ctimex», «atimex», «xtimex», «pmtimex», «rmtimex», «changedx»).

Для импорта файлов, содержащих дату/время в «старом» стиле, вам необходимо вручную преобразовать содержимое этих полей к представлению по стандарту W3C.

### TXT- и CSV-файлы KeePass V1

Рекомендуемый способ импорта контейнеров KeePass V1 через XML-файл описан ниже.

#### Текстовый файл

Поддерживается импорт TXT-файлов KeePass V1 (проверено на файлах созданных KeePass V1.19b).

Перечисленные поля преобразуются в соответствующие поля Password Safe.

Каждый элемент начинается со строки заключённой в квадратные скобки («[»,«]»). Текст из этой строки считается заголовком элемента.

Каждое поле начинается с новой строки. Его содержание определяется по заголовку, указанному в начале строки.

- «Group» — группа элемента.
- «Group Tree» — перечень родительских групп до корня.
- «User Name» — имя пользователя.
- «Password» — пароль.
- «URL» — ссылка.
- «Notes» — заметки.
- «UUID» — уникальный идентификатор элемента.
- «Creation Time» — время создания элемента.
- «Last Access» — время последнего доступа к элементу.
- «Last Modification» — время изменения пароля и время последнего изменения.
- «Expires» — дата истечения пароля.

Следующие поля игнорируются:

- «Icon»
- «Attachment Description»
- «Attachment» — не экспортируйте данное поле, т. к. это приводит значительному увеличению размера файла.

Обратите внимание, что в Password Safe значение даты и времени должны быть не позднее 19 января 2038 г. Более поздние даты считаются некорректными, и соответствующие поля не заполняются.

Обратите внимание, что при экспорте из KeePass необходимо поставить флажок Encode/replace newline characters by '\n', иначе операция импорта может завершиться с ошибкой или привести к неожиданным результатам.

#### CSV-файл

Поддерживается импорт CSV-файлов KeePass V1 (проверено на файлах созданных KeePass V1.19b).

Перечисленные поля преобразуются в соответствующие поля Password Safe.

- «Password Groups» — группа элемента.
- «Group Tree» — перечень родительских групп до корня.
- «Account» — заголовок элемента.
- «Login Name» — имя пользователя.
- «Password» — пароль.
- «Web Site» — ссылка.
- «Comments» — заметки.
- «UUID» — уникальный идентификатор элемента.
- «Creation Time» — время создания элемента.
- «Last Access» — время последнего доступа к элементу.
- «Last Modification» — время изменения пароля и время последнего изменения.
- «Expires» — дата истечения пароля.

Следующие поля игнорируются:

- «Icon»
- «Attachment Description»
- «Attachment» — не экспортируйте данное поле, т. к. это приводит значительному увеличению размера файла.

Обратите внимание, что в Password Safe значение даты и времени должны быть не позднее 19 января 2038 г. Более поздние даты считаются некорректными, и соответствующие поля не заполняются.

Обратите внимание, что при экспорте из KeePass необходимо поставить флажок Encode/replace newline characters by '\n', иначе операция импорта может завершиться с ошибкой или привести к неожиданным результатам.

### KeePass V2 через CSV-файлы KeePass V1

Рекомендуемый способ импорта контейнеров KeePass V2 через XML-файл описан ниже.

Password Safe не может напрямую импортировать файлы, созданные KeePass V2 (даже файлы экспорта в KeePass V1 CSV из KeePass V2). Но существует возможность экспортировать контейнер KeePass V2 в формат KeePass V1. После этого можно экспортировать данные в TXT- или CSV-формат и импортировать их как описано выше.

### XML-файлы KeePass V1 и V2

Password Safe не может напрямую импортировать XML-файлы, созданные KeePass V1 и KeePass V2, т. к. их формат сильно отличается от используемого в Password Safe. Но мы предоставляем XSL-файлы для преобразования их в совместимый формат (KPV1_to_PWS.xslt и KPV2_to_PWS.xslt). Указанны ниже программы могут быть использованы для обработки экспортированных XML-файлов с помощью XSLT-шаблонов. Полученные в результате преобразования файлы совместимы с импортируемыми Password Safe XML-файлами (для Password Safe V3.26 или новее).

XSLT-файлы соответствуют стандарту XSLT V1.0, описанному на http://www.w3.org/TR/xslt, и были проверены на файлах, созданных с помощью KeePass V1.19b и KeePass V2.15.

Обратите внимание, что в Password Safe значение даты и времени должны быть не позднее 19 января 2038 г. Более поздние даты считаются некорректными, и соответствующие поля не заполняются.

Для данных шаблонов на ОС Windows можно использовать следующие XSLT-процессоры. Приведённые в примерах командные строки предполагают, что

- Имя шаблона для преобразования XML-файла KeePass в XML-файл Password Safe: KPV1_to_PWS.xslt или KPV2_to_PWS.xslt.
- Имя входного XML-файла KeePass V1 или V2: KeePassV1.xml или KeePassV2.xml.
- Имя выходного XML-файла Password Safe: PWS.xml.
- Все входные или выходные файлы находятся в том же каталоге, что и XSLT-процессор. В противном случае необходимо указать полные пути к файлам.

1. Утилита командной строки от Microsoft (XSLT Processor Version 4.0). В свойствах файла msxsl.exe указана версия V1.1.0.1 и дата 2001 г., хотя на web-сайте указана версия V2.0 с датой 19 сентября 2004 г. Утилиту можно загрузить с http://www.microsoft.com/downloads. Для работы утилиты требуется Microsoft Core XML Services (MSXML) V4.0. Текущая версия MSXML V6, но V4 обычно присутствует на всех версиях Windows, поддерживаемых Password Safe.

   Для XML-файлов KeePass V1 используется команда:

       msxsl KeePassV1.xml KPV1_to_PWS.xslt -o PWS.xml

   Для XML-файлов KeePass V2 используется команда:

       msxsl KeePassV2.xml KPV2_to_PWS.xslt -o PWS.xml

2. AltovaXML Community Edition (текущая версия 2011r3). См. http://www.altova.com/altovaxml.html.

   Для XML-файлов KeePass V1 используется команда:

       AltovaXML -xslt1 KPV1_to_PWS.xslt -in KeePassV1.xml -out PWS.xml

   Для XML-файлов KeePass V2 используется команда:

       AltovaXML -xslt1 KPV2_to_PWS.xslt -in KeePassV2.xml -out PWS.xml

3. Saxon-HE (Home Edition) (текущая версия 9.3.0.5). См. http://saxon.sourceforge.net/. Для Saxon также существует графическая оболочка Kernow. См. http://kernowforsaxon.sourceforge.net/. Формат команды зависит от того, какая используется версия Saxon-HE и/или Kernow (Java или .Net). Для получения дополнительной информации см. документацию к программам.

Все перечисленные программы бесплатны для использования, но Kernow требует регистрации после стократного использования.

#### Особенности обработки XML-файлов KeePass V1

- Если имя группы в KeePass содержит точку («.»), то при импорте в Password Safe она будет заменена на косую черту («/»), т. к. в Password Safe точка используется в качестве разделителя групп.
- Из поля заметок удаляются все символы возврата каретки, а символы новой строки преобразуются в используемый Password Safe разделитель строк '»'.
- Уникальные идентификатор (UUID) элемента KeePass переносятся в Password Safe без изменений, если только он уже не используются для другого элемента (что бывает очень редко), в противном случае будет создан новый идентификатор.

XML-элементы KeePass V1 | Эквивалентные XML-элементы Password Safe
--- | ---
<group> | <group>
<title> | <title>
<username> | <username>
<password> | <password>
<url> | <url>
<notes> | <notes>
<lastmodtime> | <pmtimex> и <rmtimex>
<creationtime> | <ctimex>
<lastaccesstime> | <atimex>
<expiretime> | <xtimex>, если в KeePass значение атрибута "expires" тега <expiretime> равно «true»
<image> <attachdesc> <attachment> | В Password Safe отсутствуют схожие поля, поэтому они игнорируются

#### Особенности обработки XML-файлов KeePass V2

- Значение <HistoryMaxItems> из раздела <Meta> в XML-файле KeePass V2 используется в качестве максимального количества паролей, сохраняемых в истории элемента в Password Safe. Оставшиеся поля из этого раздела игнорируются.
- Если имя группы в KeePass содержит точку («.»), то при импорте в Password Safe она будет заменена на косую черту («/»), т. к. в Password Safe точка используется в качестве разделителя групп.
- Из поля заметок удаляются все символы возврата каретки, а символы новой строки преобразуются в используемый Password Safe разделитель строк '»'.
- Уникальные идентификаторы (UUID) элементов KeePass переносятся в Password Safe, если только они уже не используются для других элементов, в противном случае будет создан новый идентификатор.
- Если для группы KeePass задано значение <DefaultAutoTypeSequence>, то для элементов этой группы в Password Safe оно будет использоваться как значение автонабора по умолчанию.
- Если для элемента значение <AutoType> равно «True» и значение <DefaultSequence> не пусто, то последнее используется в Password Safe как последовательность для автонабора. Если для элемента значение <AutoType> равно «True», но значение <DefaultSequence> пусто, то используется значение <DefaultAutoTypeSequence> от родительской группы.
- Если значение <OverrideURL> не пусто, то оно помещается в заметки с префиксом «OverrideURL:», а к значению поля URL добавляется приставка «[alt]».
- Если строка URL начинается с «\\» или «cmd://» (независимо от регистра), то значение помещается в поле «Выполнить», но перед этим производится подстановка ключевых последовательностей (см. ниже). В противном случае строка URL подставляется в поле «Ссылка» с предварительной заменой только последовательностей вида {S:FieldName}.
- Если значение <Tags> не пусто, то оно помещается в заметки с префиксом «Tags:».

KeePass V2 экспортирует значения строковых полей (например, заголовок) в раздел <String> с элементами <Key> и <Value>. Пример:

    <String>
    	<Key>Title</Key>
    	<Value>Заголовок элемента</Value>
    </String>

В таблице указаны преобразования элементов этого разделов при импорте в Password Safe.

Значение <String>/<Key> в KeePass V2 | Эквивалент в Password Safe
--- | ---
Title (заголовок) | <title>
Username (имя пользователя) | <username>
Password (пароль) | <password>
URL (ссылка) | <url> или <runcommand> в зависимости от префикса (см. выше)
Notes (заметки) | <notes>
Все остальные | Добавляются в поле «Заметки» в виде: «Key: Value»

KeePass V2 экспортирует все поля, связанные со временем в раздел <Times>. Пример:

    <Times>
      <LastModificationTime>2011-05-30T14:20:57Z</LastModificationTime>
      <CreationTime>2011-05-27T18:09:29Z</CreationTime>
      <LastAccessTime>2011-05-30T14:20:57Z</LastAccessTime>
      <ExpiryTime>2999-12-28T23:59:59Z</ExpiryTime>
      <Expires>False</Expires>
    </Times>

В таблице указаны преобразования элементов этого разделов при импорте в Password Safe.

Значения времени в KeePass V2 | Эквивалент в Password Safe
--- | ---
<Times>/<LastModificationTime> | <pmtimex> и <rmtimex>
<Times>/<CreationTime> | <ctimex>
<Times>/<LastAccessTime> | <atimex>
<Times>/<ExpiryTime> | <xtimex>, если <Times>/<Expires> равно «True»

KeePass V2 создаёт запись в истории при изменении любого поля элемента. Password Safe отслеживает только изменения пароля. Все остальные изменения, сохранённые в записях истории KeePass, игнорируются.

История KeePass V2 | Эквивалент в Password Safe
--- | ---
<Times>/<LastModificationTime> | <history_entry>/<changedx>
<String[Key='Password']> | <history_entry>/<oldpassword>
Все остальные значения из <History> | Игнорируются

Ниже описаны преобразования кодов автонабора KeePass V2 (см. http://keepass.info/help/base/autotype.html) в коды Password Safe. Все неуказанные коды копируются без изменений.

Коды автонабора KeePass V2 | Эквивалент в Password Safe
--- | ---
\ | \\ (экранирование символа «\»)
Табуляция {TAB} | \t
Enter {ENTER} или ~ | \n
Забой {BACKSPACE}, {BS} или {BKSP} | \b
«+» на цифровой клавиатуре {ADD} | +
«-» на цифровой клавиатуре {SUBTRACT} | -
«*» на цифровой клавиатуре {MULTIPLY} | *
«/» на цифровой клавиатуре {DIVIDE} | /
+ {+} | +
^ {^} | ^
% {%} | %
~ {~} | ~
(, ) {(}, {)} | (, )
{DELAY X} Задержка в X мс. | \wX (\WX)
{DELAY=X} Установка задержки в X мс между нажатиями кнопок в последовательности. | \dX

Ниже описаны ключевые последовательности подстановок KeePass V2 (см. http://keepass.info/help/base/placeholders.html) в коды Password Safe. Все неуказанные коды копируются без изменений.

Ключевые подстановки регистронезависимы. Ссылки на пользовательские строки имеют вид {S:FieldName}. Например, если у элемента задана пользовательская строка «eMail», на неё можно сослаться используя подстановку {S:eMail}.

Подстановки KeePass V2 | Ключи автонабора в Password Safe | Ключи для команд в Password Safe
--- | --- | ---
{GROUP} | \g | ${G}
{TITLE} | \i | ${t}
{USERNAME} | \u | ${u}
{PASSWORD} | \p | ${p}
{NOTES} | \o | ${n}

Подстановки KeePass V2 | Ключи для команд в Password Safe
--- | ---
\{ | \\{ (экранирование «\»)
$ | \$ (экранирование «$»)
{GROUPPATH} | ${g}
{URL} | ${url}
{URL:RMVSCM} | ${url}
{APPDIR} | ${appdir}
{DB_PATH} | ${fulldb}
{DB_DIR} | ${dbdir}
{DB_NAME} | ${dbname}.${dbextn}
{DB_BASENAME} | ${dbname}
{DB_EXT} | ${dbextn}
Все остальные | Копируются без изменений