Example usage for org.bouncycastle.asn1 DERPrintableString getString

List of usage examples for org.bouncycastle.asn1 DERPrintableString getString

Introduction

In this page you can find the example usage for org.bouncycastle.asn1 DERPrintableString getString.

Prototype

public String getString() 

Source Link

Usage

From source file:br.gov.frameworkdemoiselle.certificate.oid.OIDGeneric.java

License:Open Source License

/**
 * Instance for object./*  w  w w.j a  va2s.c  o m*/
 *
 * @param data -> byte array with certificate content.
 * @return Object GenericOID
 * @throws IOException
 * @throws Exception
 */
public static OIDGeneric getInstance(byte[] data) throws IOException, Exception {
    ASN1InputStream is = new ASN1InputStream(data);
    DERSequence sequence = (DERSequence) is.readObject();
    DERObjectIdentifier objectIdentifier = (DERObjectIdentifier) sequence.getObjectAt(0);
    DERTaggedObject tag = (DERTaggedObject) sequence.getObjectAt(1);
    DEROctetString octetString = null;
    DERPrintableString printableString = null;
    DERUTF8String utf8String = null;
    DERIA5String ia5String = null;

    try {
        octetString = (DEROctetString) DEROctetString.getInstance(tag);
    } catch (Exception ex) {
        try {
            printableString = DERPrintableString.getInstance(tag);
        } catch (Exception e1) {
            try {
                utf8String = DERUTF8String.getInstance(tag);
            } catch (Exception e2) {
                ia5String = DERIA5String.getInstance(tag);
            }
        }
    }

    String className = "br.gov.frameworkdemoiselle.certificate.oid.OID_"
            + objectIdentifier.getId().replaceAll("[.]", "_");
    OIDGeneric oidGenerico;
    try {
        oidGenerico = (OIDGeneric) Class.forName(className).newInstance();
    } catch (InstantiationException e) {
        throw new Exception("Can not instace class '" + className + "'.", e);
    } catch (IllegalAccessException e) {
        throw new Exception("Was not possible instace class '" + className + "'.", e);
    } catch (ClassNotFoundException e) {
        oidGenerico = new OIDGeneric();
    }

    oidGenerico.setOid(objectIdentifier.getId());

    if (octetString != null) {
        oidGenerico.setData(new String(octetString.getOctets()));
    } else if (printableString != null) {
        oidGenerico.setData(printableString.getString());
    } else if (utf8String != null) {
        oidGenerico.setData(utf8String.getString());
    } else {
        oidGenerico.setData(ia5String.getString());
    }
    oidGenerico.initialize();
    return oidGenerico;
}

From source file:cc.arduino.plugins.unowifi.certs.WiFi101Certificate.java

License:Open Source License

private static byte[] extractPrintableString(ASN1Encodable obj) throws IOException {
    if (obj instanceof DERPrintableString) {
        DERPrintableString s = (DERPrintableString) obj;
        // System.out.println("'" + s.getString() + "'");
        return s.getString().getBytes();
    }/*from www  .  ja va2  s. c  o m*/
    ByteArrayOutputStream res = new ByteArrayOutputStream();
    if (obj instanceof DLSequence) {
        DLSequence s = (DLSequence) obj;
        for (int i = 0; i < s.size(); i++) {
            res.write(extractPrintableString(s.getObjectAt(i)));
        }
    }
    if (obj instanceof DLSet) {
        DLSet s = (DLSet) obj;
        for (int i = 0; i < s.size(); i++) {
            res.write(extractPrintableString(s.getObjectAt(i)));
        }
    }
    return res.toByteArray();
}

From source file:cc.arduino.plugins.wifi101.certs.WiFi101Certificate.java

License:Open Source License

private static byte[] extractPrintableString(ASN1Encodable obj) throws IOException {
    if (obj instanceof DERPrintableString) {
        DERPrintableString s = (DERPrintableString) obj;
        return s.getString().getBytes();
    } else if (obj instanceof DERUTF8String) {
        DERUTF8String s = (DERUTF8String) obj;
        return s.getString().getBytes();
    }//from   w  ww. jav  a2  s  .  com

    ByteArrayOutputStream res = new ByteArrayOutputStream();
    if (obj instanceof DLSequence) {
        DLSequence s = (DLSequence) obj;
        for (int i = 0; i < s.size(); i++) {
            res.write(extractPrintableString(s.getObjectAt(i)));
        }
    }
    if (obj instanceof DLSet) {
        DLSet s = (DLSet) obj;
        for (int i = 0; i < s.size(); i++) {
            res.write(extractPrintableString(s.getObjectAt(i)));
        }
    }
    return res.toByteArray();
}

From source file:me.it_result.ca.bouncycastle.Utils.java

License:Open Source License

public static String extractProfileId(ASN1Set csrAttributes, String defaultProfileId) {
    String profileId = null;//from  w  w  w  .  jav a 2  s  .c  om
    try {
        Enumeration<?> attrEnum = csrAttributes.getObjects();
        while (attrEnum.hasMoreElements()) {
            DERSequence attr = (DERSequence) attrEnum.nextElement();
            if (attr.getObjectAt(0).equals(PROFILE_ID_ATTR)) {
                ASN1Set profileIdSet = (ASN1Set) attr.getObjectAt(1);
                DERPrintableString profileIdValue = (DERPrintableString) profileIdSet.getObjectAt(0);
                profileId = profileIdValue.getString();
                break;
            }
        }
    } catch (Exception e) {
    }
    if (profileId == null)
        profileId = defaultProfileId;
    return profileId;
}

From source file:me.it_result.ca.bouncycastle.Utils.java

License:Open Source License

public static String extractChallengePassword(ASN1Set csrAttributes) {
    String challengePassword = null;
    try {/*from   www.  j  ava  2s .  c  o m*/
        Enumeration<?> attrEnum = csrAttributes.getObjects();
        while (attrEnum.hasMoreElements()) {
            DERSequence attr = (DERSequence) attrEnum.nextElement();
            if (attr.getObjectAt(0).equals(PKCSObjectIdentifiers.pkcs_9_at_challengePassword)) {
                ASN1Set passwordSet = (ASN1Set) attr.getObjectAt(1);
                DERPrintableString passwordValue = (DERPrintableString) passwordSet.getObjectAt(0);
                challengePassword = passwordValue.getString();
                break;
            }
        }
    } catch (Exception e) {
    }
    return challengePassword;
}

From source file:net.sf.keystore_explorer.crypto.x509.X509Ext.java

License:Open Source License

private String getAttributeValueString(ASN1ObjectIdentifier attributeType, ASN1Encodable attributeValue)
        throws IOException {
    // @formatter:off

    /* AttributeValue ::= ANY */

    // @formatter:on

    // Get value string for recognized attribute types
    AttributeTypeType attributeTypeType = AttributeTypeType.resolveOid(attributeType.getId());

    if (attributeTypeType == COMMON_NAME) {
        DirectoryString commonName = DirectoryString.getInstance(ASN1Primitive.fromByteArray(value));
        return commonName.getString();
    } else if (attributeTypeType == SERIAL_NUMBER) {
        DERPrintableString serialNumber = DERPrintableString.getInstance(value);
        return serialNumber.getString();
    } else if (attributeTypeType == COUNTRY_NAME) {
        DERPrintableString countryName = DERPrintableString.getInstance(value);
        return countryName.getString();
    } else if (attributeTypeType == LOCALITY_NAME) {
        DirectoryString localityName = DirectoryString.getInstance(ASN1Primitive.fromByteArray(value));
        return localityName.getString();
    } else if (attributeTypeType == STATE_NAME) {
        DirectoryString stateName = DirectoryString.getInstance(ASN1Primitive.fromByteArray(value));
        return stateName.getString();
    } else if (attributeTypeType == STREET_ADDRESS) {
        DirectoryString street = DirectoryString.getInstance(ASN1Primitive.fromByteArray(value));
        return street.getString();
    } else if (attributeTypeType == ORGANIZATION_NAME) {
        DirectoryString organizationName = DirectoryString.getInstance(ASN1Primitive.fromByteArray(value));
        return organizationName.getString();
    } else if (attributeTypeType == ORGANIZATIONAL_UNIT) {
        DirectoryString organizationalUnitName = DirectoryString
                .getInstance(ASN1Primitive.fromByteArray(value));
        return organizationalUnitName.getString();
    } else if (attributeTypeType == TITLE) {
        DirectoryString title = DirectoryString.getInstance(ASN1Primitive.fromByteArray(value));
        return title.getString();
    } else if (attributeTypeType == EMAIL_ADDRESS) {
        DERIA5String emailAddress = DERIA5String.getInstance(value);
        return emailAddress.getString();
    } else if (attributeTypeType == UNSTRUCTURED_NAME) {
        DERIA5String emailAddress = DERIA5String.getInstance(value);
        return emailAddress.getString();
    } else if (attributeTypeType == UNSTRUCTURED_ADDRESS) {
        DERPrintableString serialNumber = DERPrintableString.getInstance(value);
        return serialNumber.getString();
    } else if (attributeTypeType == USER_ID) {
        DirectoryString title = DirectoryString.getInstance(ASN1Primitive.fromByteArray(value));
        return title.getString();
    } else if (attributeTypeType == MAIL) {
        DERIA5String emailAddress = DERIA5String.getInstance(value);
        return emailAddress.getString();
    } else if (attributeTypeType == DOMAIN_COMPONENT) {
        DERIA5String domainComponent = DERIA5String.getInstance(value);
        return domainComponent.getString();
    }//from   ww w .  j a v  a2 s  .  c o m
    // Attribute type not recognized - return hex string for value
    else {
        return HexUtil.getHexString(value);
    }
}

From source file:nl.uva.vlet.grid.voms.VOMSAttributeCertificate.java

License:Apache License

private String DERSequencetoDN(DERSequence this_sequence) throws Exception {
    String thisDN = "";

    try {/*www . j  a  v  a 2 s. c o m*/

        for (Enumeration n = this_sequence.getObjects(); n.hasMoreElements();) {
            DERSet this_set = (DERSet) n.nextElement();
            DERSequence this_seq = (DERSequence) this_set.getObjectAt(0);
            try {
                DERPrintableString this_string = (DERPrintableString) this_seq.getObjectAt(1);
                thisDN = thisDN.concat("/" + Translate_OID.getStringFromOID("" + this_seq.getObjectAt(0)) + "="
                        + this_string.getString());
            } catch (Exception notPS) {
                // email is encoded differently?
                DERIA5String this_string = (DERIA5String) this_seq.getObjectAt(1);
                thisDN = thisDN.concat("/" + Translate_OID.getStringFromOID("" + this_seq.getObjectAt(0)) + "="
                        + this_string.getString());
            }
        }

    } catch (Exception e) {
        throw e;
    }

    return thisDN;
}

From source file:org.demoiselle.signer.core.oid.OIDGeneric.java

License:Open Source License

/**
 * Instance for OIDGeneric.//from w w w  . java2  s. c  o m
 *
 * @param data
 *            Set of bytes with the contents of the certificate.
 * @return Object GenericOID
 * @throws IOException exception of input/output
 * @throws Exception general exception
 */
public static OIDGeneric getInstance(byte[] data) throws IOException, Exception {
    is = new ASN1InputStream(data);
    DLSequence sequence = (DLSequence) is.readObject();
    ASN1ObjectIdentifier oid = (ASN1ObjectIdentifier) sequence.getObjectAt(0);
    DERTaggedObject taggedObject = (DERTaggedObject) sequence.getObjectAt(1);
    DERTaggedObject taggedObject2 = (DERTaggedObject) taggedObject.getObject();

    DEROctetString octet = null;
    DERPrintableString print = null;
    DERUTF8String utf8 = null;
    DERIA5String ia5 = null;

    try {
        octet = (DEROctetString) taggedObject2.getObject();
    } catch (Exception e) {
        try {
            print = (DERPrintableString) taggedObject2.getObject();
        } catch (Exception e1) {
            try {
                utf8 = (DERUTF8String) taggedObject2.getObject();
            } catch (Exception e2) {
                ia5 = (DERIA5String) taggedObject2.getObject();
            }
        }
    }

    String className = getPackageName() + oid.getId().replaceAll("[.]", "_");
    OIDGeneric oidGenerico;
    try {
        oidGenerico = (OIDGeneric) Class.forName(className).newInstance();
    } catch (InstantiationException e) {
        throw new Exception(coreMessagesBundle.getString("error.class.instance", className), e);
    } catch (IllegalAccessException e) {
        throw new Exception(coreMessagesBundle.getString("error.class.illegal.access", className), e);
    } catch (ClassNotFoundException e) {
        oidGenerico = new OIDGeneric();
    }

    oidGenerico.oid = oid.getId();

    if (octet != null) {
        oidGenerico.data = new String(octet.getOctets());
    } else {
        if (print != null) {
            oidGenerico.data = print.getString();
        } else {
            if (utf8 != null) {
                oidGenerico.data = utf8.getString();
            } else {
                oidGenerico.data = ia5.getString();
            }
        }
    }

    oidGenerico.initialize();

    return oidGenerico;
}

From source file:org.ejbca.util.cert.SeisCardNumberExtension.java

License:Open Source License

/**
 * CardNumber EXTENSION ::= {// w w  w .ja v  a2s.  c om
 *       SYNTAX        CardNumber
 *       IDENTIFIED BY id-seis-pe-cn}
 *       -- id-seis-pe-cn is defined in Annex A
 * CardNumber ::= PrintableString     *
 * 
* @param certificate containing card number
* @return String containing card number. 
* @throws java.lang.Exception
*/
public static String getSeisCardNumber(Certificate certificate) throws Exception {
    log.debug("Search for CardNumber");
    String ret = null;
    if (certificate instanceof X509Certificate) {
        X509Certificate x509cert = (X509Certificate) certificate;
        ASN1Primitive obj = CertTools.getExtensionValue(x509cert, SeisCardNumber.OID_CARDNUMBER);
        if (obj == null) {
            return null;
        }
        DERPrintableString number = (DERPrintableString) obj;
        ret = number.getString();
    }
    return ret;
}

From source file:org.signserver.testutils.TestUtils.java

License:Open Source License

public static void checkSigningCertificateAttribute(final ASN1Sequence scAttr, final X509Certificate cert)
        throws Exception {
    final ASN1ObjectIdentifier scOid = ASN1ObjectIdentifier.getInstance(scAttr.getObjectAt(0));

    assertEquals("Invalid OID for content", SIGNING_CERT_OID, scOid.getId());

    // calculate expected hash
    final byte[] digest = MessageDigest.getInstance("SHA-1").digest(cert.getEncoded());

    // find hash in returned structure
    final ASN1Set set = ASN1Set.getInstance(scAttr.getObjectAt(1));
    final ASN1Sequence s1 = ASN1Sequence.getInstance(set.getObjectAt(0));
    final ASN1Sequence s2 = ASN1Sequence.getInstance(s1.getObjectAt(0));
    final ASN1Sequence s3 = ASN1Sequence.getInstance(s2.getObjectAt(0));
    final ASN1OctetString hashOctetString = ASN1OctetString.getInstance(s3.getObjectAt(0));

    assertTrue("Hash doesn't match", Arrays.equals(digest, hashOctetString.getOctets()));

    // find serial number in structure
    final ASN1Sequence s4 = ASN1Sequence.getInstance(s3.getObjectAt(1));
    final ASN1Integer snValue = ASN1Integer.getInstance(s4.getObjectAt(1));

    final BigInteger sn = cert.getSerialNumber();
    assertEquals("Serial number doesn't match", sn, snValue.getValue());

    // examine issuer
    final ASN1Sequence s5 = ASN1Sequence.getInstance(s4.getObjectAt(0));
    final ASN1TaggedObject obj = ASN1TaggedObject.getInstance(s5.getObjectAt(0));
    final ASN1Sequence s6 = ASN1Sequence.getInstance(obj.getObject());

    // expect 4 DN components in the signing cert
    assertEquals("Number of DN components", 4, s6.size());

    final Enumeration objects = s6.getObjects();
    while (objects.hasMoreElements()) {
        final ASN1Set component = ASN1Set.getInstance(objects.nextElement());
        final ASN1Sequence seq = ASN1Sequence.getInstance(component.getObjectAt(0));
        final ASN1ObjectIdentifier dnOid = ASN1ObjectIdentifier.getInstance(seq.getObjectAt(0));

        if (CN_OID.equals(dnOid.getId())) {
            final DERUTF8String cn = DERUTF8String.getInstance(seq.getObjectAt(1));
            assertEquals("Issuer CN doesn't match", CN, cn.getString());
        } else if (OU_OID.equals(dnOid.getId())) {
            final DERUTF8String ou = DERUTF8String.getInstance(seq.getObjectAt(1));
            assertEquals("Issuer OU doesn't match", OU, ou.getString());
        } else if (O_OID.equals(dnOid.getId())) {
            final DERUTF8String o = DERUTF8String.getInstance(seq.getObjectAt(1));
            assertEquals("Issuer O doesn't match", O, o.getString());
        } else if (C_OID.equals(dnOid.getId())) {
            final DERPrintableString c = DERPrintableString.getInstance(seq.getObjectAt(1));
            assertEquals("Issuer C doesn't match", C, c.getString());
        } else {//  w w w.  ja va  2 s. co m
            fail("Unexpected issuer DN component");
        }
    }
}