class SecurityProvider
{
    private static Provider provider = null;

    private SecurityProvider()
    {
    }

    /**
     * Returns the provider to be used for advanced encrypting/decrypting. Default is the BouncyCastleProvider.
     * 
     * @return the security provider
     */
    public static Provider getProvider()
    {<FILL_FUNCTION_BODY>}

    /**
     * Set the provider to be used for advanced encrypting/decrypting.
     * 
     * @param provider the security provider
     */
    public static void setProvider(Provider provider)
    {
        SecurityProvider.provider = provider;
    }
}

        // TODO synchronize access
        if (provider == null)
        {
            provider = new BouncyCastleProvider();
        }
        return provider;
    
<no_super_class>