Example usage for org.bouncycastle.asn1.esf SignerAttribute getInstance

List of usage examples for org.bouncycastle.asn1.esf SignerAttribute getInstance

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.esf SignerAttribute getInstance.

Prototype

public static SignerAttribute getInstance(Object o) 

Source Link

Usage

From source file:eu.europa.ec.markt.dss.validation.cades.CAdESSignature.java

License:Open Source License

@Override
public String[] getClaimedSignerRoles() {

    if (signerInformation.getSignedAttributes() == null) {
        return null;
    }/*  w  ww.j a v a2s  . c  om*/

    Attribute signerAttrAttr = signerInformation.getSignedAttributes()
            .get(PKCSObjectIdentifiers.id_aa_ets_signerAttr);
    if (signerAttrAttr == null) {
        return null;
    }

    SignerAttribute signerAttr = null;
    signerAttr = SignerAttribute.getInstance(signerAttrAttr.getAttrValues().getObjectAt(0));

    if (signerAttr == null) {
        return null;
    }

    String[] ret = new String[signerAttr.getClaimedAttributes().size()];
    for (int i = 0; i < signerAttr.getClaimedAttributes().size(); i++) {
        if (signerAttr.getClaimedAttributes().getObjectAt(i) instanceof DEROctetString) {
            ret[i] = new String(
                    ((DEROctetString) signerAttr.getClaimedAttributes().getObjectAt(i)).getOctets());

        } else {
            ret[i] = signerAttr.getClaimedAttributes().getObjectAt(i).toString();
        }
    }

    return ret;
}

From source file:eu.europa.ec.markt.dss.validation102853.cades.CAdESSignature.java

License:Open Source License

@Override
public String[] getClaimedSignerRoles() {

    final AttributeTable attributes = signerInformation.getSignedAttributes();
    if (attributes == null) {
        return null;
    }/* w w w  .  j  ava2s. c o  m*/
    final Attribute id_aa_ets_signerAttr = attributes.get(PKCSObjectIdentifiers.id_aa_ets_signerAttr);
    if (id_aa_ets_signerAttr == null) {
        return null;
    }
    final ASN1Set attrValues = id_aa_ets_signerAttr.getAttrValues();
    final ASN1Encodable attrValue = attrValues.getObjectAt(0);
    try {

        final SignerAttribute signerAttr = SignerAttribute.getInstance(attrValue);
        if (signerAttr == null) {
            return null;
        }
        final List<String> claimedRoles = new ArrayList<String>();
        final Object[] signerAttrValues = signerAttr.getValues();
        for (final Object signerAttrValue : signerAttrValues) {

            if (!(signerAttrValue instanceof org.bouncycastle.asn1.x509.Attribute[])) {

                continue;
            }
            final org.bouncycastle.asn1.x509.Attribute[] signerAttrValueArray = (org.bouncycastle.asn1.x509.Attribute[]) signerAttrValue;
            for (final org.bouncycastle.asn1.x509.Attribute claimedRole : signerAttrValueArray) {

                final ASN1Encodable[] attrValues1 = claimedRole.getAttrValues().toArray();
                for (final ASN1Encodable asn1Encodable : attrValues1) {
                    if (asn1Encodable instanceof ASN1String) {
                        ASN1String asn1String = (ASN1String) asn1Encodable;
                        final String s = asn1String.getString();
                        claimedRoles.add(s);
                    }
                }
            }
        }
        final String[] strings = claimedRoles.toArray(new String[claimedRoles.size()]);
        return strings;
    } catch (Exception e) {

        throw new DSSException("Error when dealing with claimed signer roles: [" + attrValue.toString() + "]",
                e);
    }
}

From source file:eu.europa.ec.markt.dss.validation102853.cades.CAdESSignature.java

License:Open Source License

@Override
public List<CertifiedRole> getCertifiedSignerRoles() {

    final AttributeTable signedAttributes = signerInformation.getSignedAttributes();
    if (signedAttributes == null) {
        return null;
    }//from   w w w.  j av  a2s.co m

    final Attribute id_aa_ets_signerAttr = signedAttributes.get(PKCSObjectIdentifiers.id_aa_ets_signerAttr);
    if (id_aa_ets_signerAttr == null) {
        return null;
    }
    final ASN1Set attrValues = id_aa_ets_signerAttr.getAttrValues();
    final ASN1Encodable asn1EncodableAttrValue = attrValues.getObjectAt(0);
    try {

        final SignerAttribute signerAttr = SignerAttribute.getInstance(asn1EncodableAttrValue);
        if (signerAttr == null) {
            return null;
        }
        List<CertifiedRole> roles = null;
        final Object[] signerAttrValues = signerAttr.getValues();
        for (final Object signerAttrValue : signerAttrValues) {

            if (signerAttrValue instanceof AttributeCertificate) {

                if (roles == null) {

                    roles = new ArrayList<CertifiedRole>();
                }
                final AttributeCertificate attributeCertificate = (AttributeCertificate) signerAttrValue;
                final AttributeCertificateInfo acInfo = attributeCertificate.getAcinfo();
                final AttCertValidityPeriod attrCertValidityPeriod = acInfo.getAttrCertValidityPeriod();
                final ASN1Sequence attributes = acInfo.getAttributes();
                for (int ii = 0; ii < attributes.size(); ii++) {

                    final ASN1Encodable objectAt = attributes.getObjectAt(ii);
                    final org.bouncycastle.asn1.x509.Attribute attribute = org.bouncycastle.asn1.x509.Attribute
                            .getInstance(objectAt);
                    final ASN1Set attrValues1 = attribute.getAttrValues();
                    DERSequence derSequence = (DERSequence) attrValues1.getObjectAt(0);
                    RoleSyntax roleSyntax = RoleSyntax.getInstance(derSequence);
                    CertifiedRole certifiedRole = new CertifiedRole();
                    certifiedRole.setRole(roleSyntax.getRoleNameAsString());
                    certifiedRole.setNotBefore(DSSASN1Utils.toDate(attrCertValidityPeriod.getNotBeforeTime()));
                    certifiedRole.setNotAfter(DSSASN1Utils.toDate(attrCertValidityPeriod.getNotAfterTime()));
                    roles.add(certifiedRole);
                }
            }
        }
        return roles;
    } catch (Exception e) {

        throw new DSSException(
                "Error when dealing with certified signer roles: [" + asn1EncodableAttrValue.toString() + "]",
                e);
    }
}