<?xml version="1.0" encoding="UTF-8"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you 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.
-->
<chapter id="ref_guide_encryption">
    <title>
        Encryption Provider
    </title>
    <para>
	OpenJPA provides an interface for a provider to implement
	connection password encryption. Whenever a connection password
	is needed, the <methodname>decrypt(String)</methodname> method will be invoked. See
	<ulink url="../../apidocs/org/apache/openjpa/lib/encryption/EncryptionProvider.html">
	<classname>org.apache.openjpa.lib.encryption.EncryptionProvider</classname>
	</ulink> for the detailed Javadoc.
    </para>
    <para>
    	Notes:
    <itemizedlist>
        <listitem>
            <para>
                It is an OpenJPA user responsibility to implement the
                <classname>EncryptionProvider</classname>
                interface. There is no default implementation.
            </para>
        </listitem>
        <listitem>
            <para>
                The interface has an <methodname>encrypt(String)</methodname> method,
                but it is not called by the OpenJPA runtime.
            </para>
        </listitem>
    </itemizedlist>
    </para>
</chapter>
