es.gob.jmulticard.asn1.der.pkcs15.CertificatesContextSpecific Maven / Gradle / Ivy
package es.gob.jmulticard.asn1.der.pkcs15;
import es.gob.jmulticard.HexUtils;
import es.gob.jmulticard.asn1.Asn1Exception;
import es.gob.jmulticard.asn1.der.ContextSpecific;
/** Enumeración de certificados específica de contexto.
* Sigue la estructura ASN.1 (es de tipo PublicKeys):
*
* Certificates ::= PathOrObjects {PrivateKeyType}
*
* Esta implememtación solo soporta Path
como tipo de los registros.
* @author Tomás García-Merás */
public final class CertificatesContextSpecific extends ContextSpecific {
private static final byte TAG = (byte) 0xA4;
/** Construye una numeración de certificados específica de contexto.
* Esta implememtación solo soporta Path
como tipo de los registros. */
public CertificatesContextSpecific() {
super(Path.class);
}
/** Obtiene la ruta (Path ASN.1 PKCS#15) hacia el CDF.
* @return Ruta (Path ASN.1 PKCS#15) hacia el CDF. */
public Path getCertificatesPath() {
if (getObject() instanceof Path) {
return (Path) getObject();
}
throw new IllegalStateException(
"El objeto interno no es de tipo Path PKCS#15" //$NON-NLS-1$
);
}
/** {@inheritDoc} */
@Override
public void checkTag(final byte tag) throws Asn1Exception {
if (TAG != tag) {
throw new Asn1Exception(
"CertificatesContextSpecific esperaba una etiqueta especifica de contexto " + HexUtils.hexify(new byte[] { TAG }, false) + //$NON-NLS-1$
" pero ha encontrado " + HexUtils.hexify(new byte[] { tag }, false) //$NON-NLS-1$
);
}
}
}