<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
<document xmlns="http://maven.apache.org/XDOC/2.0"
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
	<properties>
		<title>Howto create a Custom Crypt styles</title>
		<author email="dev@openmeetings.apache.org">Apache OpenMeetings Team</author>
	</properties>
	<body>
		<section name="Configuration of Custom Crypt-Style">
			<p>
				You can use custom Crypt-Types, but you should decide during
				installation which Type of encryption you want to use. By default SCryptImplementation is used:
			</p>
			<ul>
				<li>org.apache.openmeetings.util.crypt.SCryptImplementation - does use
					SCrypt for password hashing with salt</li>
			</ul>
			<p>
				You can edit the config-key during Installation or later in the
				Administration Panel. But if you change it using the
				Administration-Panel previous passwords will not work anymore
				as they are encrypted with another algorithm.
			</p>
		</section>
		<section name="Configuration of Custom Crypt-Style">
			<p>
				To add your own crypt style you need to write a class which
				implements the interface: org.apache.openmeetings.util.crypt.ICrypt
				<br />
				Example of an Implementation: <br />
				<a href="https://github.com/apache/openmeetings/blob/256e5cd11e5af8f422688dfc1d01ac66b370d7a0/openmeetings-util/src/main/java/org/apache/openmeetings/util/crypt/SHA256Implementation.java">SHA256Implementation.java</a>
				<br />
				<a href="https://github.com/apache/openmeetings/blob/256e5cd11e5af8f422688dfc1d01ac66b370d7a0/openmeetings-util/src/main/java/org/apache/openmeetings/util/crypt/MD5Implementation.java">MD5Implementation.java</a>
				<br />
			</p>
			<p>To add your own Encryption-Class you need to add your class to the
				OpenMeetings-Webapp (make it available to the webapp-classpath) and
				use your custom-class-name instead of
				org.apache.openmeetings.util.crypt.SCryptImplementation during the Installation or
				at runtime by editing the config-key <tt>crypt.class.name</tt></p>
		</section>
		<section name="Configuration of Custom Crypt-Style">
			<p>credits goto Mika for sharing his Implementation of the MD5Crypt-Style</p>
		</section>
	</body>
</document>
