/* See LICENSE for licensing and NOTICE for copyright. */
package org.cryptacular.adapter;
import java.math.BigInteger;
import java.security.interfaces.DSAParams;
import org.bouncycastle.crypto.params.DSAKeyParameters;
/**
* Base class for DSA wrapped keys.
*
* @param <T> DSA key parameters type.
*
* @author Middleware Services
*/
public abstract class AbstractWrappedDSAKey<T extends DSAKeyParameters> extends AbstractWrappedKey<T>
{
/** DSA algorithm name. */
private static final String ALGORITHM = "DSA";
/**
* Creates a new instance that wraps the given key.
*
* @param wrappedKey Key to wrap.
*/
public AbstractWrappedDSAKey(final T wrappedKey)
{
super(wrappedKey);
}
/** @return DSA key parameters. */
public DSAParams getParams()
{
return
new DSAParams() {
@Override
public BigInteger getP()
{
return delegate.getParameters().getP();
}
@Override
public BigInteger getQ()
{
return delegate.getParameters().getQ();
}
@Override
public BigInteger getG()
{
return delegate.getParameters().getG();
}
};
}
@Override
public String getAlgorithm()
{
return ALGORITHM;
}
}