blob: 9c3cbd3681b31277fc40f42d8e565b21b626a8f7 [file] [log] [blame]
<?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>
<properties>
<title>Howto create a Custom Crypt styles</title>
<author email="sebawagner@apache.org">
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
two type are available:
</p>
<ul>
<li>org.xmlcrm.utils.crypt.MD5Implementation - this uses common MD5
Crypt like PHP does, this is the default one (results in something
like: fe01ce2a7fbac8fafaed7c982a04e229)</li>
<li>org.xmlcrm.utils.crypt.MD5CryptImplementation - does use
BSD-Style of encryption using a salt (results in something like:
$1$GMsj7F2I$5S3r9CeukXGXNwf6b4sph1)</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 might be not working 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.xmlcrm.utils.cryptCryptString
<br />
and extends the Adapter: org.xmlcrm.utils.CryptStringAdapter
<br />
Example of an Implementation:
</p>
<div class="xmlcode">
package org.xmlcrm.utils.crypt;
import java.security.NoSuchAlgorithmException;
public class MD5Implementation extends CryptStringAdapter implements CryptString {
@Override
public String createPassPhrase(String userGivenPass) {
String passPhrase = null;
try {
passPhrase = MD5.do_checksum(userGivenPass);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return passPhrase;
}
@Override
public Boolean verifyPassword(String passGiven, String passwdFromDb) {
return (passwdFromDb.equals(createPassPhrase(passGiven)));
}
}
</div>
<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.xmlcrm.utils.crypt.MD5Implementation during the Installation or
at runtime by editing the config-key crypt_ClassName</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>