Search in sources :

Example 1 with TASecurityInfos

use of org.openecard.crypto.common.asn1.eac.TASecurityInfos in project open-ecard by ecsec.

the class EFCardAccess method decodeSecurityInfos.

/**
 * Decode the SecurityInfos.
 */
private void decodeSecurityInfos() {
    final ASN1Set securityinfos = sis.getSecurityInfos();
    final int length = securityinfos.size();
    psi = new PACESecurityInfos();
    tsi = new TASecurityInfos();
    csi = new CASecurityInfos();
    for (int i = 0; i < length; i++) {
        ASN1Sequence securityInfo = (ASN1Sequence) securityinfos.getObjectAt(i);
        String oid = securityInfo.getObjectAt(0).toString();
        // PACEInfo (REQUIRED)
        if (PACEInfo.isPACEObjectIdentifer(oid)) {
            _logger.debug("Found PACEInfo object identifier");
            PACEInfo pi = new PACEInfo(securityInfo);
            psi.addPACEInfo(pi);
        } else // PACEDoaminParameterInfo (CONDITIONAL)
        if (PACEDomainParameterInfo.isPACEObjectIdentifer(oid)) {
            _logger.debug("Found PACEDomainParameterInfo object identifier");
            PACEDomainParameterInfo pdp = new PACEDomainParameterInfo(securityInfo);
            psi.addPACEDomainParameterInfo(pdp);
        } else // ChipAuthenticationInfo (CONDITIONAL)
        if (CAInfo.isObjectIdentifier(oid)) {
            _logger.debug("Found ChipAuthenticationInfo object identifier");
            CAInfo ci = new CAInfo(securityInfo);
            csi.addCAInfo(ci);
        } else // ChipAuthenticationDomainParameterInfo (CONDITIONAL)
        if (CADomainParameterInfo.isObjectIdentifier(oid)) {
            _logger.debug("Found ChipAuthenticationDomainParameterInfo object identifier");
            CADomainParameterInfo cdp = new CADomainParameterInfo(securityInfo);
            csi.addCADomainParameterInfo(cdp);
        } else // TerminalAuthenticationInfo (CONDITIONAL)
        if (EACObjectIdentifier.id_TA.equals(oid)) {
            _logger.debug("Found TerminalAuthenticationInfo object identifier");
            TAInfo ta = new TAInfo(securityInfo);
            tsi.addTAInfo(ta);
        } else // CardInfoLocator (RECOMMENDED)
        if (EACObjectIdentifier.id_CI.equals(oid)) {
            _logger.debug("Found CardInfoLocator object identifier");
            cil = CardInfoLocator.getInstance(securityInfo);
        } else // PrivilegedTerminalInfo (CONDITIONAL)
        if (EACObjectIdentifier.id_PT.equals(oid)) {
            _logger.debug("Found PrivilegedTerminalInfo object identifier");
            pti = PrivilegedTerminalInfo.getInstance(securityInfo);
        } else {
            _logger.debug("Found unknown object identifier: {}", oid.toString());
        }
    }
}
Also used : PACESecurityInfos(org.openecard.crypto.common.asn1.eac.PACESecurityInfos) ASN1Sequence(org.openecard.bouncycastle.asn1.ASN1Sequence) ASN1Set(org.openecard.bouncycastle.asn1.ASN1Set) TASecurityInfos(org.openecard.crypto.common.asn1.eac.TASecurityInfos) CADomainParameterInfo(org.openecard.crypto.common.asn1.eac.CADomainParameterInfo) TAInfo(org.openecard.crypto.common.asn1.eac.TAInfo) PACEInfo(org.openecard.crypto.common.asn1.eac.PACEInfo) CAInfo(org.openecard.crypto.common.asn1.eac.CAInfo) CASecurityInfos(org.openecard.crypto.common.asn1.eac.CASecurityInfos) PACEDomainParameterInfo(org.openecard.crypto.common.asn1.eac.PACEDomainParameterInfo)

Aggregations

ASN1Sequence (org.openecard.bouncycastle.asn1.ASN1Sequence)1 ASN1Set (org.openecard.bouncycastle.asn1.ASN1Set)1 CADomainParameterInfo (org.openecard.crypto.common.asn1.eac.CADomainParameterInfo)1 CAInfo (org.openecard.crypto.common.asn1.eac.CAInfo)1 CASecurityInfos (org.openecard.crypto.common.asn1.eac.CASecurityInfos)1 PACEDomainParameterInfo (org.openecard.crypto.common.asn1.eac.PACEDomainParameterInfo)1 PACEInfo (org.openecard.crypto.common.asn1.eac.PACEInfo)1 PACESecurityInfos (org.openecard.crypto.common.asn1.eac.PACESecurityInfos)1 TAInfo (org.openecard.crypto.common.asn1.eac.TAInfo)1 TASecurityInfos (org.openecard.crypto.common.asn1.eac.TASecurityInfos)1