package de.persosim.simulator.protocols;
import java.security.Key;
import de.persosim.simulator.crypto.DomainParameterSet;
import de.persosim.simulator.crypto.certificates.CvPublicKey;
import de.persosim.simulator.tlv.ConstructedTlvDataObject;
/**
* Implementations of this interface are used to modularize the {@link Tr03110Utils} class.
*
* @author mboonk
*
*/
public interface Tr03110UtilsProvider {
/**
* This method creates domain parameters from a given key object.
* @param key the key to extract domain parameters from
* @return the domain parameters or null if the key does not contain supported domain parameters
*/
public DomainParameterSet getDomainParameterSetFromKey(Key key);
/**
* This method parses a public key as encoded within a CV certificate
* @param publicKeyData the encoding of the public key
* @return a public key object matching the provided encoding
*/
public CvPublicKey parseCvPublicKey(ConstructedTlvDataObject publicKeyData);
}