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

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

Introduction

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

Prototype

public DERUTF8String getLocalityName() 

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 w  w.j a  va2s. 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) {
        /*
                    // 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 w  w w  . j a  v a2 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) {
        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;
}