package com.nifty.cloud.ncs.encrypt;

import java.security.Provider;

/**
 * 暗号化の設定を行うクラスです。
 */
public class CryptoConfiguration
{
	/**
	 * 暗号化情報を保持するモード<br>
	 * デフォルトは<code>ObjectMetadata</code>モードです。
	 */
	private CryptoStorageMode storageMode;

	/** 暗号化プロバイダー */
	private Provider cryptoProvider;

	/**
	 * 新しいCryptoConfigurationを構築します。
	 */
	public CryptoConfiguration()
	{
		this.cryptoProvider = null;
	}

	/**
	 * 暗号化情報を保持するモードを設定します。
	 *
	 * @param storageMode
	 *  暗号化情報保持モード
	 */
	public void setStorageMode(CryptoStorageMode storageMode)
	{
		this.storageMode = storageMode;
	}

	/**
	 * 暗号化情報保持モードを取得します。
	 *
	 * @return 暗号化情報保持モード
	 */
	public CryptoStorageMode getStorageMode()
	{
		return (this.storageMode);
	}

	/**
	 * 暗号化プロバイダーを設定します。
	 *
	 * @param cryptoProvider
	 *  暗号化プロバイダー
	 */
	public void setCryptoProvider(Provider cryptoProvider)
	{
		this.cryptoProvider = cryptoProvider;
	}

	/**
	 * 暗号化プロバイダーを取得します。
	 *
	 * @return 暗号化プロバイダー
	 */
	public Provider getCryptoProvider()
	{
		return (this.cryptoProvider);
	}

}
