Package es.gob.jmulticard.asn1.icao
Class Sod
- java.lang.Object
-
- es.gob.jmulticard.asn1.DecoderObject
-
- es.gob.jmulticard.asn1.icao.Sod
-
public final class Sod extends DecoderObject
SOD de ICAO 9303. La implementación interna se apoya en BouncyCastle.
-
-
Field Summary
Fields Modifier and Type Field Description private java.security.cert.X509Certificate[]
certificateChain
private CryptoHelper
cryptoHelper
private LdsSecurityObject
ldsSecurityObject
private byte[]
ldsSecurityObjectBytes
private static byte
TAG
-
Constructor Summary
Constructors Constructor Description Sod(CryptoHelper ch)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
decodeValue()
Decodifica el valor DER establecido comprobando que corresponde al esperado y formando las estructuras internas.java.security.cert.X509Certificate[]
getCertificateChain()
Obtiene la cadena de certificados del firmante del LDSSecurityObject.protected byte
getDefaultTag()
Obtiene la etiqueta de tipo ASN.1 del objeto.LdsSecurityObject
getLdsSecurityObject()
Obtiene elLDSSecurityObject
.byte[]
getLdsSecurityObjectBytes()
Obtiene la codificación binaria del LDSSecurityObject.java.lang.String
toString()
void
validateSignature()
Valida la firma electrónica del SOD.-
Methods inherited from class es.gob.jmulticard.asn1.DecoderObject
checkTag, getBytes, getRawDerValue, setDerValue
-
-
-
-
Field Detail
-
cryptoHelper
private final transient CryptoHelper cryptoHelper
-
TAG
private static final byte TAG
- See Also:
- Constant Field Values
-
ldsSecurityObjectBytes
private transient byte[] ldsSecurityObjectBytes
-
ldsSecurityObject
private transient LdsSecurityObject ldsSecurityObject
-
certificateChain
private transient java.security.cert.X509Certificate[] certificateChain
-
-
Constructor Detail
-
Sod
public Sod(CryptoHelper ch)
Constructor.- Parameters:
ch
- Clase de utilidad para operaciones criptográficas.
-
-
Method Detail
-
decodeValue
protected void decodeValue() throws Asn1Exception, TlvException
Description copied from class:DecoderObject
Decodifica el valor DER establecido comprobando que corresponde al esperado y formando las estructuras internas.- Specified by:
decodeValue
in classDecoderObject
- Throws:
Asn1Exception
- Si hay errores correspondientes a las estructuras ASN.1 DER.TlvException
- Si hay errores relativos a los TLV DER.
-
validateSignature
public void validateSignature() throws TlvException, java.security.SignatureException, java.security.cert.CertificateException, java.io.IOException, Asn1Exception
Valida la firma electrónica del SOD.- Throws:
TlvException
- Si el SOD no es un TLV correctamente formado.java.security.SignatureException
- Si la firma no es válida.java.security.cert.CertificateException
- Si hay problemas relacionados con los certificados de firma.java.io.IOException
- Si los datos proporcionados no son una firma CMS/PKCS#7 bien formada.Asn1Exception
- Si el SOD no contiene unLDSSecurityObject
válido.
-
getDefaultTag
protected byte getDefaultTag()
Description copied from class:DecoderObject
Obtiene la etiqueta de tipo ASN.1 del objeto.- Specified by:
getDefaultTag
in classDecoderObject
- Returns:
- Etiqueta de tipo ASN.1 del objeto.
-
getLdsSecurityObjectBytes
public byte[] getLdsSecurityObjectBytes() throws java.security.SignatureException, java.security.cert.CertificateException, TlvException, java.io.IOException, Asn1Exception
Obtiene la codificación binaria del LDSSecurityObject. La obtención desencadena una validación de la firma electrónica del SOD.- Returns:
- Codificación binaria del LDSSecurityObject.
- Throws:
java.io.IOException
- Si se encunetra alguna estructura ASN.1 mal formada.java.security.cert.CertificateException
- Si los certificados de firma del SOD presentan problemas.java.security.SignatureException
- Si la firma del SOD es inválida o presenta problemas.TlvException
- Si el SOD del documento no es un TLV válido.Asn1Exception
- Si el SOD no contiene unLDSSecurityObject
válido.
-
getLdsSecurityObject
public LdsSecurityObject getLdsSecurityObject() throws TlvException, Asn1Exception, java.io.IOException, java.security.SignatureException, java.security.cert.CertificateException
Obtiene elLDSSecurityObject
. La obtención desencadena una validación de la firma electrónica del SOD.- Returns:
- LDSSecurityObject.
- Throws:
TlvException
- Si el SOD del documento no es un TLV válido.java.io.IOException
- Si no se puede construir elLDSSecurityObject
.Asn1Exception
- Si los datos encontrados no conforman unLDSSecurityObject
válido.java.security.cert.CertificateException
- Si los certificados de firma del SOD presentan problemas.java.security.SignatureException
- Si la firma del SOD es inválida o presenta problemas.
-
getCertificateChain
public java.security.cert.X509Certificate[] getCertificateChain() throws TlvException, Asn1Exception, java.security.SignatureException, java.security.cert.CertificateException, java.io.IOException
Obtiene la cadena de certificados del firmante del LDSSecurityObject. La obtención desencadena una validación de la firma electrónica del SOD.- Returns:
- Cadena de certificados del firmante del LDSSecurityObject.
- Throws:
TlvException
- Si el SOD del documento no es un TLV válido.Asn1Exception
- Si el SOD del documento no es un tipo ASN.1 válido.java.io.IOException
- Si se encunetra alguna estructura ASN.1 mal formada.java.security.cert.CertificateException
- Si los certificados de firma del SOD presentan problemas.java.security.SignatureException
- Si la firma del SOD es inválida o presenta problemas.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-