diff --git a/Documentation/.gitignore b/Documentation/.gitignore
new file mode 100644
index 0000000..d35112a
--- /dev/null
+++ b/Documentation/.gitignore
@@ -0,0 +1,23 @@
+#########################
+# Git
+# global ignore file
+########################
+# ignoring temporary files (left by e.g. vim)
+# ignoring by common IDE's used directories/files
+# dont ignore .rej and .orig as we want to see/clean files after conflict resolution
+#
+# for local exclude patterns please edit .git/info/exclude
+#
+*~
+*.bak
+*.idea
+*.project
+*.swp
+.buildpath
+.cache
+.project
+.session
+.settings
+.TemporaryItems
+.webprj
+nbproject
diff --git a/Documentation/Administration/ConfiguringTypo3FeloginExtensionToUseYubikey/Index.rst b/Documentation/Administration/ConfiguringTypo3FeloginExtensionToUseYubikey/Index.rst
new file mode 100644
index 0000000..113fd02
--- /dev/null
+++ b/Documentation/Administration/ConfiguringTypo3FeloginExtensionToUseYubikey/Index.rst
@@ -0,0 +1,39 @@
+
+
+.. ==================================================
+.. FOR YOUR INFORMATION
+.. --------------------------------------------------
+.. -*- coding: utf-8 -*- with BOM.
+
+.. ==================================================
+.. DEFINE SOME TEXTROLES
+.. --------------------------------------------------
+.. role:: underline
+.. role:: typoscript(code)
+.. role:: ts(typoscript)
+ :class: typoscript
+.. role:: php(code)
+
+
+Configuring TYPO3 felogin extension to use YubiKey
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If you have enables YubiKey Authentication for frontend users, you
+have to add an extra field to your felogin template.
+
+First you have to configure felogin, so it uses an own template.
+
+styles.content.loginform.templateFile =
+fileadmin/templates/ext\_felogin/template.html
+
+Then you must add the following HTML to the ###TEMPLATE\_LOGIN###
+section right after the password field.::
+
+
+
+
+
+
+Finally, you can add your own CSS Styles to the new field, so it looks
+like a YubiKey enabled input field.
+
diff --git a/Documentation/Administration/Index.rst b/Documentation/Administration/Index.rst
new file mode 100644
index 0000000..ddf5f5b
--- /dev/null
+++ b/Documentation/Administration/Index.rst
@@ -0,0 +1,29 @@
+
+
+.. ==================================================
+.. FOR YOUR INFORMATION
+.. --------------------------------------------------
+.. -*- coding: utf-8 -*- with BOM.
+
+.. ==================================================
+.. DEFINE SOME TEXTROLES
+.. --------------------------------------------------
+.. role:: underline
+.. role:: typoscript(code)
+.. role:: ts(typoscript)
+ :class: typoscript
+.. role:: php(code)
+
+
+Administration
+--------------
+
+
+.. toctree::
+ :maxdepth: 5
+ :titlesonly:
+ :glob:
+
+ SettingTheYubicoApiKey/Index
+ ConfiguringTypo3FeloginExtensionToUseYubikey/Index
+
diff --git a/Documentation/Administration/SettingTheYubicoApiKey/Images.txt b/Documentation/Administration/SettingTheYubicoApiKey/Images.txt
new file mode 100644
index 0000000..32e936b
--- /dev/null
+++ b/Documentation/Administration/SettingTheYubicoApiKey/Images.txt
@@ -0,0 +1,6 @@
+.. |ext-settings| image:: ../../Images/yubikey-ext-settings.png
+ :height: 870
+ :width: 584
+.. :align: left
+.. :border: 0
+.. :name: Extension settings
diff --git a/Documentation/Administration/SettingTheYubicoApiKey/Index.rst b/Documentation/Administration/SettingTheYubicoApiKey/Index.rst
new file mode 100644
index 0000000..e678002
--- /dev/null
+++ b/Documentation/Administration/SettingTheYubicoApiKey/Index.rst
@@ -0,0 +1,36 @@
+.. include:: Images.txt
+
+.. ==================================================
+.. FOR YOUR INFORMATION
+.. --------------------------------------------------
+.. -*- coding: utf-8 -*- with BOM.
+
+.. ==================================================
+.. DEFINE SOME TEXTROLES
+.. --------------------------------------------------
+.. role:: underline
+.. role:: typoscript(code)
+.. role:: ts(typoscript)
+ :class: typoscript
+.. role:: php(code)
+
+
+Setting the Yubico API Key
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+After installing the extension from the extension repository, you need
+to configure the extension settings. The authentication process only
+works, if you provide a Yubico API Key, which can by obtained at
+`https://upgrade.yubico.com/getapikey/
+`_
+
+The Yubico API Key is necessary to use the free YubiCloud OTP
+validation service.
+
+After you have obtained your Yubico API Key, enter the Client ID and
+the Client Key in the extension settings.
+
+|ext-settings|
+
+Extension settings for the Yubico API Key
+
diff --git a/Documentation/Configuration/Index.rst b/Documentation/Configuration/Index.rst
new file mode 100644
index 0000000..95c70bf
--- /dev/null
+++ b/Documentation/Configuration/Index.rst
@@ -0,0 +1,136 @@
+
+
+.. ==================================================
+.. FOR YOUR INFORMATION
+.. --------------------------------------------------
+.. -*- coding: utf-8 -*- with BOM.
+
+.. ==================================================
+.. DEFINE SOME TEXTROLES
+.. --------------------------------------------------
+.. role:: underline
+.. role:: typoscript(code)
+.. role:: ts(typoscript)
+ :class: typoscript
+.. role:: php(code)
+
+
+Configuration
+-------------
+
+The extension can be configured in the extension settings from the
+extension manager. Besides the Yubico API Key and the Client ID, there
+are four other settings that can be configured.
+
+.. t3-field-list-table::
+ :header-rows: 1
+
+ - :Property:
+ Property:
+
+ :Date type:
+ Data type:
+
+ :Description:
+ Description:
+
+ :Default:
+ Default:
+
+ - :Property:
+ yubikeyEnableBE
+
+ :Date type:
+ boolean
+
+ :Description:
+ Enable YubiKey authentication for TYPO3 backend users
+
+ :Default:
+ True
+
+ - :Property:
+ yubikeyEnableFE
+
+ :Date type:
+ boolean
+
+ :Description:
+ Enable YubiKey authentication for TYPO3 backend users
+
+ :Default:
+ False
+
+ - :Property:
+ yubikeyUseSSL
+
+ :Date type:
+ boolean
+
+ :Description:
+ Uses SSL to communicate with the YubiCloud authentication servers. Only respected, if [usePear] is enabled.
+
+ :Default:
+ True
+
+ - :Property:
+ usePear
+
+ :Date type:
+ boolean
+
+ :Description:
+ If checked, the YubiKey pear library will be used to validate YubiKey OTPs. Since version 0.7.0, the
+ extension contains a native YubiKey OTP validation through Yubico API server configured in [yubikeyApiUrl]
+ If you enable this option, make sure that pear is available on you server!
+
+ :Default:
+ False
+
+ - :Property:
+ devlog
+
+ :Date type:
+ boolean
+
+ :Description:
+ Writes debugging messages to the TYPO3 devlog
+
+ :Default:
+ False
+
+ - :Property:
+ yubikeyClientId
+
+ :Date type:
+ string
+
+ :Description:
+ Your Yubico API Client ID
+
+ :Default:
+ Empty
+
+ - :Property:
+ yubikeyClientKey
+
+ :Date type:
+ string
+
+ :Description:
+ Your Yubico API Client Key
+
+ :Default:
+ Empty
+
+ - :Property:
+ yubikeyApiUrl
+
+ :Date type:
+ string
+
+ :Description:
+ The Yubico API URL to validate YubiKey OTPs
+
+ :Default:
+ https://api.yubico.com/wsapi/verify
\ No newline at end of file
diff --git a/Documentation/Images.txt b/Documentation/Images.txt
new file mode 100644
index 0000000..653080a
--- /dev/null
+++ b/Documentation/Images.txt
@@ -0,0 +1,11 @@
+.. |img-1| image:: Images/manual_html_72264b4e.png
+ :height: 44
+ :width: 161
+.. :align: left
+.. :border: 0
+.. :name: graphics5
+.. :vspace: 57
+
+.. |img-2| image:: Images/manual_html_m12b2d25f.gif
+.. :align: left
+
diff --git a/Documentation/Images/yubikey-be-user.png b/Documentation/Images/yubikey-be-user.png
new file mode 100644
index 0000000..d9edba7
Binary files /dev/null and b/Documentation/Images/yubikey-be-user.png differ
diff --git a/Documentation/Images/yubikey-ext-settings.png b/Documentation/Images/yubikey-ext-settings.png
new file mode 100644
index 0000000..2c070b7
Binary files /dev/null and b/Documentation/Images/yubikey-ext-settings.png differ
diff --git a/Documentation/Images/yubikey-login.png b/Documentation/Images/yubikey-login.png
new file mode 100644
index 0000000..c281a6e
Binary files /dev/null and b/Documentation/Images/yubikey-login.png differ
diff --git a/Documentation/Index.rst b/Documentation/Index.rst
new file mode 100644
index 0000000..e74d9f8
--- /dev/null
+++ b/Documentation/Index.rst
@@ -0,0 +1,70 @@
+
+
+.. ==================================================
+.. FOR YOUR INFORMATION
+.. --------------------------------------------------
+.. -*- coding: utf-8 -*- with BOM.
+
+.. ==================================================
+.. DEFINE SOME TEXTROLES
+.. --------------------------------------------------
+.. role:: underline
+.. role:: typoscript(code)
+.. role:: ts(typoscript)
+ :class: typoscript
+.. role:: php(code)
+
+=====================================
+YubiKey two-factor OTP authentication
+=====================================
+
+.. only:: html
+
+:Classification:
+ sf_yubikey
+
+:Version:
+ |release|
+
+:Language:
+ en
+
+:Description:
+ YubiKey two-factor OTP authentication
+
+:Keywords:
+ yubikey, yubico, two-factor, authentication, service
+
+:Copyright:
+ 2012 - 2014
+
+:Author:
+ Torben Hansen
+
+:Email:
+ derhansen@gmail.com
+
+:License:
+ This document is published under the Open Content License
+ available from http://www.opencontent.org/opl.shtml
+
+:Rendered:
+ |today|
+
+The content of this document is related to TYPO3,
+a GNU/GPL CMS/Framework available from `www.typo3.org `_.
+
+**Table of Contents**
+
+.. toctree::
+ :maxdepth: 5
+ :titlesonly:
+ :glob:
+
+ Introduction/Index
+ UsersManual/Index
+ Administration/Index
+ Configuration/Index
+ KnownProblems/Index
+ To-doList/Index
+
diff --git a/Documentation/Introduction/Index.rst b/Documentation/Introduction/Index.rst
new file mode 100644
index 0000000..5a52b5b
--- /dev/null
+++ b/Documentation/Introduction/Index.rst
@@ -0,0 +1,29 @@
+
+
+.. ==================================================
+.. FOR YOUR INFORMATION
+.. --------------------------------------------------
+.. -*- coding: utf-8 -*- with BOM.
+
+.. ==================================================
+.. DEFINE SOME TEXTROLES
+.. --------------------------------------------------
+.. role:: underline
+.. role:: typoscript(code)
+.. role:: ts(typoscript)
+ :class: typoscript
+.. role:: php(code)
+
+
+Introduction
+------------
+
+
+.. toctree::
+ :maxdepth: 5
+ :titlesonly:
+ :glob:
+
+ WhatDoesItDo/Index
+ Screenshots/Index
+
diff --git a/Documentation/Introduction/Screenshots/Images.txt b/Documentation/Introduction/Screenshots/Images.txt
new file mode 100644
index 0000000..269981c
--- /dev/null
+++ b/Documentation/Introduction/Screenshots/Images.txt
@@ -0,0 +1,7 @@
+.. |login| image:: ../../Images/yubikey-login.png
+ :height: 338
+ :width: 470
+.. :align: left
+.. :border: 0
+.. :name: YubiKey TYPO3 backend login
+
diff --git a/Documentation/Introduction/Screenshots/Index.rst b/Documentation/Introduction/Screenshots/Index.rst
new file mode 100644
index 0000000..ba4fd92
--- /dev/null
+++ b/Documentation/Introduction/Screenshots/Index.rst
@@ -0,0 +1,24 @@
+.. include:: Images.txt
+
+.. ==================================================
+.. FOR YOUR INFORMATION
+.. --------------------------------------------------
+.. -*- coding: utf-8 -*- with BOM.
+
+.. ==================================================
+.. DEFINE SOME TEXTROLES
+.. --------------------------------------------------
+.. role:: underline
+.. role:: typoscript(code)
+.. role:: ts(typoscript)
+ :class: typoscript
+.. role:: php(code)
+
+
+Screenshots
+^^^^^^^^^^^
+
+|login|
+
+The YubiKey enabled TYPO3 backend login
+
diff --git a/Documentation/Introduction/WhatDoesItDo/Index.rst b/Documentation/Introduction/WhatDoesItDo/Index.rst
new file mode 100644
index 0000000..40a0eea
--- /dev/null
+++ b/Documentation/Introduction/WhatDoesItDo/Index.rst
@@ -0,0 +1,35 @@
+
+
+.. ==================================================
+.. FOR YOUR INFORMATION
+.. --------------------------------------------------
+.. -*- coding: utf-8 -*- with BOM.
+
+.. ==================================================
+.. DEFINE SOME TEXTROLES
+.. --------------------------------------------------
+.. role:: underline
+.. role:: typoscript(code)
+.. role:: ts(typoscript)
+ :class: typoscript
+.. role:: php(code)
+
+
+What does it do?
+^^^^^^^^^^^^^^^^
+
+This extension is an authentication service for TYPO3 which extends
+the frontend and backend login process by strong two-factor
+authentication.
+
+The two-factor authentication is provided by a TYPO3 users username
+and password combined with a OTP (one time password) which is
+generated by a YubiKey (a physical USB-key)
+
+A YubiKey enabled user has to enter his username, password and a OTP
+to login to the TYPO3 backend and/or frontend.
+
+More information about the YubiKey, Yubico and the YubiCloud OTP
+validation service can be found at `http://www.yubicom.com
+`_
+
diff --git a/Documentation/KnownProblems/Index.rst b/Documentation/KnownProblems/Index.rst
new file mode 100644
index 0000000..95b8026
--- /dev/null
+++ b/Documentation/KnownProblems/Index.rst
@@ -0,0 +1,28 @@
+
+
+.. ==================================================
+.. FOR YOUR INFORMATION
+.. --------------------------------------------------
+.. -*- coding: utf-8 -*- with BOM.
+
+.. ==================================================
+.. DEFINE SOME TEXTROLES
+.. --------------------------------------------------
+.. role:: underline
+.. role:: typoscript(code)
+.. role:: ts(typoscript)
+ :class: typoscript
+.. role:: php(code)
+
+
+Known problems
+--------------
+
+None at the moment.
+
+If you think you have found a bug, please report it at forge.
+
+`https://github.com/derhansen/sf\_yubikey
+`_
+
+
diff --git a/Documentation/To-doList/Index.rst b/Documentation/To-doList/Index.rst
new file mode 100644
index 0000000..8c2d8da
--- /dev/null
+++ b/Documentation/To-doList/Index.rst
@@ -0,0 +1,27 @@
+
+
+.. ==================================================
+.. FOR YOUR INFORMATION
+.. --------------------------------------------------
+.. -*- coding: utf-8 -*- with BOM.
+
+.. ==================================================
+.. DEFINE SOME TEXTROLES
+.. --------------------------------------------------
+.. role:: underline
+.. role:: typoscript(code)
+.. role:: ts(typoscript)
+ :class: typoscript
+.. role:: php(code)
+
+
+To-Do list
+----------
+
+- Enable the use of an own Yubico validation server
+
+If you have additional wished, feel free to report them at
+`https://github.com/derhansen/sf\_yubikey
+`_
+
+
diff --git a/Documentation/UsersManual/Index.rst b/Documentation/UsersManual/Index.rst
new file mode 100644
index 0000000..38f6968
--- /dev/null
+++ b/Documentation/UsersManual/Index.rst
@@ -0,0 +1,35 @@
+
+
+.. ==================================================
+.. FOR YOUR INFORMATION
+.. --------------------------------------------------
+.. -*- coding: utf-8 -*- with BOM.
+
+.. ==================================================
+.. DEFINE SOME TEXTROLES
+.. --------------------------------------------------
+.. role:: underline
+.. role:: typoscript(code)
+.. role:: ts(typoscript)
+ :class: typoscript
+.. role:: php(code)
+
+
+Users manual
+------------
+
+The usage of the two-factor authentication is very easy. You can enable
+each individual backend and frontend user to use the two-factor
+authentication process.
+
+After the extension is installed, there is a new tab in the user
+settings where you can enable the YubiKey two-factor authentication.
+
+
+.. toctree::
+ :maxdepth: 5
+ :titlesonly:
+ :glob:
+
+ UserSettings/Index
+
diff --git a/Documentation/UsersManual/UserSettings/Images.txt b/Documentation/UsersManual/UserSettings/Images.txt
new file mode 100644
index 0000000..beaaa25
--- /dev/null
+++ b/Documentation/UsersManual/UserSettings/Images.txt
@@ -0,0 +1,7 @@
+.. |be-user-settings| image:: ../../Images/yubikey-be-user.png
+ :height: 291
+ :width: 469
+.. :align: left
+.. :border: 0
+.. :name: Backend user settings
+
diff --git a/Documentation/UsersManual/UserSettings/Index.rst b/Documentation/UsersManual/UserSettings/Index.rst
new file mode 100644
index 0000000..a308571
--- /dev/null
+++ b/Documentation/UsersManual/UserSettings/Index.rst
@@ -0,0 +1,35 @@
+.. include:: Images.txt
+
+.. ==================================================
+.. FOR YOUR INFORMATION
+.. --------------------------------------------------
+.. -*- coding: utf-8 -*- with BOM.
+
+.. ==================================================
+.. DEFINE SOME TEXTROLES
+.. --------------------------------------------------
+.. role:: underline
+.. role:: typoscript(code)
+.. role:: ts(typoscript)
+ :class: typoscript
+.. role:: php(code)
+
+
+User settings
+^^^^^^^^^^^^^
+
+To enable the YubiKey two-factor authentication for a user, just edit
+the user in the TYPO3 backend and enable the checkbox as shown below.
+
+|be-user-settings|
+
+Next you have to enter the YubiKey ID, which is the unique ID of the YubiKey USB
+key. To get the ID, just insert your YubiKey into a free USB port and press the button
+on the YubiKey. Now a YubiKey OTP will be inserted in the textfield. Don't care, that the
+textfield will show the whole YubiKey OPT. The authentication process will automatically
+extract the YubiKey ID from the OTP.
+
+If you have multiple YubiKey devices, you can save the YubiKey ID of each
+device in the textfield. Remember to use a new line for each YubiKey ID.
+
+
diff --git a/doc/manual.sxw b/doc/manual.sxw
deleted file mode 100644
index 360acf3..0000000
Binary files a/doc/manual.sxw and /dev/null differ
diff --git a/doc/wizard_form.dat b/doc/wizard_form.dat
deleted file mode 100644
index 5bacf9c..0000000
--- a/doc/wizard_form.dat
+++ /dev/null
@@ -1 +0,0 @@
-a:4:{s:4:"save";a:3:{s:13:"extension_key";s:10:"sf_yubikey";s:18:"print_wop_comments";s:1:"0";s:15:"overwrite_files";a:10:{s:9:"ChangeLog";s:1:"1";s:10:"README.txt";s:1:"1";s:12:"ext_icon.gif";s:1:"1";s:17:"ext_localconf.php";s:1:"1";s:19:"doc/wizard_form.dat";s:1:"1";s:20:"doc/wizard_form.html";s:1:"1";s:30:"sv1/class.tx_sfyubikey_sv1.php";s:1:"1";s:14:"ext_tables.php";s:1:"1";s:14:"ext_tables.sql";s:1:"1";s:16:"locallang_db.xml";s:1:"1";}}s:6:"emconf";a:1:{i:1;a:7:{s:5:"title";s:26:"Yubikey OTP Authentication";s:11:"description";s:0:"";s:8:"category";s:8:"services";s:5:"state";s:5:"alpha";s:12:"dependencies";s:0:"";s:6:"author";s:13:"Torben Hansen";s:12:"author_email";s:23:"derhansen@gmail.com";}}s:2:"sv";a:1:{i:1;a:8:{s:5:"title";s:26:"Yubikey OTP Authentication";s:11:"description";s:0:"";s:4:"type";s:4:"auth";s:7:"subtype";s:10:"authUserBE";s:8:"priority";s:2:"60";s:7:"quality";s:2:"60";s:2:"os";s:0:"";s:4:"exec";s:0:"";}}s:6:"fields";a:1:{i:1;a:3:{s:11:"which_table";s:8:"be_users";s:5:"title";s:24:"be_users (Backend Users)";s:6:"fields";a:3:{i:2;a:6:{s:9:"fieldname";s:14:"yubikey_enable";s:5:"title";s:29:"Enable Yubikey authentication";s:4:"type";s:5:"check";s:12:"excludeField";s:1:"0";s:7:"_DELETE";s:1:"0";s:18:"conf_check_default";s:1:"0";}i:3;a:14:{s:9:"fieldname";s:12:"yubikey_mode";s:5:"title";s:27:"Yubikey authentication mode";s:4:"type";s:5:"radio";s:12:"excludeField";s:1:"0";s:7:"_DELETE";s:1:"0";s:18:"conf_select_item_0";s:26:"Yubikey OTP authentication";s:23:"conf_select_itemvalue_0";s:1:"0";s:18:"conf_select_item_1";s:56:"Two-Factor authentication (TYPO3 Password + Yubikey OTP)";s:23:"conf_select_itemvalue_1";s:1:"1";s:18:"conf_select_item_2";s:0:"";s:23:"conf_select_itemvalue_2";s:1:"2";s:18:"conf_select_item_3";s:0:"";s:23:"conf_select_itemvalue_3";s:1:"3";s:17:"conf_select_items";s:1:"2";}i:1;a:9:{s:9:"fieldname";s:10:"yubikey_id";s:5:"title";s:10:"Yubikey ID";s:4:"type";s:5:"input";s:12:"excludeField";s:1:"0";s:7:"_DELETE";s:1:"0";s:9:"conf_size";s:2:"12";s:8:"conf_max";s:2:"12";s:13:"conf_required";s:1:"0";s:12:"conf_varchar";s:1:"0";}}}}}
\ No newline at end of file
diff --git a/doc/wizard_form.html b/doc/wizard_form.html
deleted file mode 100644
index 05a4e98..0000000
--- a/doc/wizard_form.html
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
- Untitled
-
-
-
-
-
General info
Enter general information about the extension here: Title, description, category, author...
Title:
Description:
Category:
State
Dependencies (comma list of extkeys):
Author Name:
Author email:
Extend existing Tables
Add custom fields to existing tables, such as the "pages", "tt_content", "fe_users" or "be_users" table.
Create a Services class. With a Services extension you can extend TYPO3 (or an extension which use Services) with functionality, without any changes to the code which use that service.
Title:
Description:
Service type: Enter here the key to define which type of service this should be. Examples: "textExtract", "metaExtract".
Sub type(s) (comma list): Possible subtypes are defined by the service type. You have read the service type documentation. Example: using subtypes for file types (doc, txt, pdf, ...) the service might work for.
Priority: 50 = medium priority. The priority of services can be changed by admin configuration.
Quality: The numbering of the quality is defined by the service type. You have read the service type documentation. The default quality range is 0-100.
Operating System dependency:
External program(s) (comma list): Program(s) needed to run this service (eg. "perl").
-
-
\ No newline at end of file
diff --git a/locallang_db.xml b/locallang_db.xml
index 0affb44..0952a2c 100644
--- a/locallang_db.xml
+++ b/locallang_db.xml
@@ -7,7 +7,7 @@
-
+
\ No newline at end of file