/* See LICENSE for licensing and NOTICE for copyright. */
package org.cryptacular.asn;
import org.cryptacular.EncodingException;
/**
* Strategy interface for converting encoded ASN.1 bytes to an object.
*
* @param <T> Type of object to produce on decode.
*
* @author Middleware Services
*/
public interface ASN1Decoder<T>
{
/**
* Produces an object from an encoded representation.
*
* @param encoded ASN.1 encoded data.
* @param args Additional data required to perform decoding.
*
* @return Decoded object.
*
* @throws EncodingException on encoding errors.
*/
T decode(byte[] encoded, Object... args) throws EncodingException;
}