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

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

Introduction

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

Prototype

public static SignerLocation getInstance(Object obj) 

Source Link

Usage

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

License:Open Source License

@Override
public SignatureProductionPlace getSignatureProductionPlace() {

    final AttributeTable attributes = signerInformation.getSignedAttributes();
    if (attributes == null) {

        return null;
    }//  w  ww .ja  v  a 2 s  .  c  om
    Attribute signatureProductionPlaceAttr = attributes.get(PKCSObjectIdentifiers.id_aa_ets_signerLocation);
    if (signatureProductionPlaceAttr == null) {

        return null;
    }

    final ASN1Encodable asn1Encodable = signatureProductionPlaceAttr.getAttrValues().getObjectAt(0);
    SignerLocation signerLocation = null;
    try {
        signerLocation = SignerLocation.getInstance(asn1Encodable);
    } catch (Exception e) {
        /*
                    // TODO: (Bob: 2013 Dec 11) ---> Validation: /C:/ws_trunk/apps/dss/core/dss-document/target/test-classes/cades2013/CAdES-EPES.SCOK/BULL/Signature-C-EPES-2.p7s
                
                    WARN  SignedDocumentValidator.java:557 - org.bouncycastle.asn1.DERUTF8String cannot be cast to org.bouncycastle.asn1.DERTaggedObject
                    java.lang.ClassCastException: org.bouncycastle.asn1.DERUTF8String cannot be cast to org.bouncycastle.asn1.DERTaggedObject
                    at org.bouncycastle.asn1.esf.SignerLocation.<init>(Unknown Source) ~[bcprov-ext-jdk15on-1.49.jar:1.49.0]
                    at org.bouncycastle.asn1.esf.SignerLocation.getInstance(Unknown Source) ~[bcprov-ext-jdk15on-1.49.jar:1.49.0]
                    at eu.europa.ec.markt.dss.validation102853.cades.CAdESSignature.getSignatureProductionPlace(CAdESSignature.java:663) ~[classes/:na]
                    at eu.europa.ec.markt.dss.validation102853.SignedDocumentValidator.dealSignature(SignedDocumentValidator.java:1209) [classes/:na]
                    at eu.europa.ec.markt.dss.validation102853.SignedDocumentValidator.validateSignature(SignedDocumentValidator.java:535) [classes/:na]
                    at eu.europa.ec.markt.dss.validation102853.SignedDocumentValidator.generateDiagnosticData(SignedDocumentValidator.java:510) [classes/:na]
                    at eu.europa.ec.markt.dss.validation102853.SignedDocumentValidator.validateDocument(SignedDocumentValidator.java:469) [classes/:na]
                    at eu.europa.ec.markt.dss.validation102853.SignedDocumentValidator.validateDocument(SignedDocumentValidator.java:450) [classes/:na]
        */
        LOG.error(e.getMessage(), e);
    }
    if (signerLocation == null) {
        return null;
    }
    final SignatureProductionPlace signatureProductionPlace = new SignatureProductionPlace();
    final DERUTF8String countryName = signerLocation.getCountryName();
    if (countryName != null) {

        signatureProductionPlace.setCountryName(countryName.getString());
    }
    final DERUTF8String localityName = signerLocation.getLocalityName();
    if (localityName != null) {

        signatureProductionPlace.setCity(localityName.getString());
    }
    final StringBuilder address = new StringBuilder();
    final ASN1Sequence seq = signerLocation.getPostalAddress();
    if (seq != null) {

        for (int ii = 0; ii < seq.size(); ii++) {

            if (seq.getObjectAt(ii) instanceof DEROctetString) {
                if (address.length() > 0) {
                    address.append(" / ");
                }
                // TODO: getOctets returns an array
                address.append(new String(((DEROctetString) seq.getObjectAt(ii)).getOctets()));
            } else if (seq.getObjectAt(ii) instanceof DERUTF8String) {

                if (address.length() > 0) {
                    address.append(" / ");
                }
                final DERUTF8String derutf8String = (DERUTF8String) seq.getObjectAt(ii);
                address.append(derutf8String.getString());
            }
        }
    }
    signatureProductionPlace.setAddress(address.toString());
    // This property is not used in CAdES version of signature
    // signatureProductionPlace.setStateOrProvince(stateOrProvince);
    return signatureProductionPlace;
}

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

License:Open Source License

@Override
public SignatureProductionPlace getSignatureProductionPlace() {

    final AttributeTable attributes = signerInformation.getSignedAttributes();
    if (attributes == null) {

        return null;
    }//from ww w  .jav a2s. c o  m
    Attribute signatureProductionPlaceAttr = attributes.get(PKCSObjectIdentifiers.id_aa_ets_signerLocation);
    if (signatureProductionPlaceAttr == null) {

        return null;
    }

    final ASN1Encodable asn1Encodable = signatureProductionPlaceAttr.getAttrValues().getObjectAt(0);
    SignerLocation signerLocation = null;
    try {
        signerLocation = SignerLocation.getInstance(asn1Encodable);
    } catch (Exception e) {
        LOG.error(e.getMessage(), e);
    }
    if (signerLocation == null) {
        return null;
    }
    final SignatureProductionPlace signatureProductionPlace = new SignatureProductionPlace();
    final DERUTF8String countryName = signerLocation.getCountryName();
    if (countryName != null) {

        signatureProductionPlace.setCountryName(countryName.getString());
    }
    final DERUTF8String localityName = signerLocation.getLocalityName();
    if (localityName != null) {

        signatureProductionPlace.setCity(localityName.getString());
    }
    final StringBuilder address = new StringBuilder();
    final ASN1Sequence seq = signerLocation.getPostalAddress();
    if (seq != null) {

        for (int ii = 0; ii < seq.size(); ii++) {

            if (seq.getObjectAt(ii) instanceof DEROctetString) {
                if (address.length() > 0) {
                    address.append(" / ");
                }
                // TODO: getOctets returns an array
                address.append(new String(((DEROctetString) seq.getObjectAt(ii)).getOctets()));
            } else if (seq.getObjectAt(ii) instanceof DERUTF8String) {

                if (address.length() > 0) {
                    address.append(" / ");
                }
                final DERUTF8String derutf8String = (DERUTF8String) seq.getObjectAt(ii);
                address.append(derutf8String.getString());
            }
        }
    }
    signatureProductionPlace.setStreetAddress(address.toString());
    // This property is not used in CAdES version of signature
    // signatureProductionPlace.setStateOrProvince(stateOrProvince);
    return signatureProductionPlace;
}