Example usage for org.bouncycastle.asn1.x509 PolicyQualifierInfo getInstance

List of usage examples for org.bouncycastle.asn1.x509 PolicyQualifierInfo getInstance

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.x509 PolicyQualifierInfo getInstance.

Prototype

public static PolicyQualifierInfo getInstance(Object obj) 

Source Link

Usage

From source file:es.gob.afirma.signers.cades.CAdESUtils.java

License:Open Source License

/** Obtiene un <i>PolicyInformation</i> a partir de los datos de la pol&iacute;tica.
 * Sirve para los datos de SigningCertificate y SigningCertificateV2. Tiene que llevar algunos
 * datos de la pol&iacute;tica./*from   ww  w .  j  a  v  a2  s. c o m*/
 *
 * <pre>
 * PolicyInformation ::= SEQUENCE {
 *       policyIdentifier   CertPolicyId,
 *       policyQualifiers   SEQUENCE SIZE (1..MAX) OF PolicyQualifierInfo OPTIONAL
 * }
 *
 * CertPolicyId ::= OBJECT IDENTIFIER
 *
 * PolicyQualifierInfo ::= SEQUENCE {
 *      policyQualifierId  PolicyQualifierId,
 *      qualifier          ANY DEFINED BY policyQualifierId
 * }
 *
 * -- policyQualifierIds for Internet policy qualifiers
 *
 * id-qt          OBJECT IDENTIFIER ::=  { id-pkix 2 }
 * id-qt-cps      OBJECT IDENTIFIER ::=  { id-qt 1 }
 * id-qt-unotice  OBJECT IDENTIFIER ::=  { id-qt 2 }
 *
 * PolicyQualifierId ::= OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
 *
 * Qualifier ::= CHOICE {
 *      cPSuri           CPSuri,
 *      userNotice       UserNotice
 * }
 *
 * CPSuri ::= IA5String
 *
 * UserNotice ::= SEQUENCE {
 *      noticeRef        NoticeReference OPTIONAL,
 *      explicitText     DisplayText OPTIONAL
 * }
 *
 * NoticeReference ::= SEQUENCE {
 *      organization     DisplayText,
 *      noticeNumbers    SEQUENCE OF INTEGER
 * }
 *
 * DisplayText ::= CHOICE {
 *      ia5String        IA5String      (SIZE (1..200)),
 *      visibleString    VisibleString  (SIZE (1..200)),
 *      bmpString        BMPString      (SIZE (1..200)),
 *      utf8String       UTF8String     (SIZE (1..200))
 * }
 * </pre>
 *
 * @param policy    Pol&iacute;tica de la firma.
 * @return          Estructura con la pol&iacute;tica preparada para insertarla en la firma. */
private static PolicyInformation[] getPolicyInformation(final AdESPolicy policy) {

    if (policy == null) {
        throw new IllegalArgumentException("La politica de firma no puede ser nula en este punto"); //$NON-NLS-1$
    }

    /** PolicyQualifierInfo ::= SEQUENCE {
     *          policyQualifierId  PolicyQualifierId,
     *          qualifier          ANY DEFINED BY policyQualifierId
     *  } */

    final PolicyQualifierId pqid = PolicyQualifierId.id_qt_cps;
    DERIA5String uri = null;

    if (policy.getPolicyQualifier() != null && !policy.getPolicyQualifier().equals("")) { //$NON-NLS-1$
        uri = new DERIA5String(policy.getPolicyQualifier().toString());
    }

    final ASN1EncodableVector v = new ASN1EncodableVector();
    PolicyQualifierInfo pqi = null;
    if (uri != null) {
        v.add(pqid);
        v.add(uri);
        pqi = PolicyQualifierInfo.getInstance(new DERSequence(v));
    }

    /** PolicyInformation ::= SEQUENCE {
     *     policyIdentifier   CertPolicyId,
     *     policyQualifiers   SEQUENCE SIZE (1..MAX) OF PolicyQualifierInfo OPTIONAL
     *  } */

    if (policy.getPolicyQualifier() == null || pqi == null) {
        return new PolicyInformation[] { new PolicyInformation(new ASN1ObjectIdentifier(
                policy.getPolicyIdentifier().toLowerCase(Locale.US).replace("urn:oid:", "") //$NON-NLS-1$ //$NON-NLS-2$
                )) };
    }

    return new PolicyInformation[] { new PolicyInformation(
            new ASN1ObjectIdentifier(policy.getPolicyIdentifier().toLowerCase(Locale.US).replace("urn:oid:", "") //$NON-NLS-1$ //$NON-NLS-2$
            ), new DERSequence(pqi)) };

}

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

License:Open Source License

/**
 * Get string representation of policy information.
 *
 * @param policyInformation/*ww  w.ja v a2s  . c  o  m*/
 *            Policy information
 * @return String representation of policy information
 * @throws IOException
 *             If policy information is invalid
 */
public static String toString(PolicyInformation policyInformation) throws IOException {
    StringBuffer sbPolicyInformation = new StringBuffer();

    ASN1ObjectIdentifier policyIdentifier = policyInformation.getPolicyIdentifier();

    sbPolicyInformation.append(MessageFormat.format(res.getString("PolicyInformationUtil.PolicyIdentifier"),
            policyIdentifier.getId()));

    ASN1Sequence policyQualifiers = policyInformation.getPolicyQualifiers();

    if (policyQualifiers != null) {
        sbPolicyInformation.append(", ");

        StringBuffer sbPolicyQualifiers = new StringBuffer();

        for (int i = 0; i < policyQualifiers.size(); i++) {
            PolicyQualifierInfo policyQualifierInfo = PolicyQualifierInfo
                    .getInstance(policyQualifiers.getObjectAt(i));

            sbPolicyQualifiers.append(toString(policyQualifierInfo));

            if ((i + 1) < policyQualifiers.size()) {
                sbPolicyQualifiers.append(", ");
            }
        }

        sbPolicyInformation.append(MessageFormat.format(res.getString("PolicyInformationUtil.PolicyQualifiers"),
                sbPolicyQualifiers));
    }

    return sbPolicyInformation.toString();
}

From source file:net.sf.keystore_explorer.gui.crypto.policyinformation.DPolicyInformationChooser.java

License:Open Source License

private void populate(PolicyInformation policyInformation) throws IOException {
    if (policyInformation != null) {
        joiPolicyIdentifier.setObjectId(policyInformation.getPolicyIdentifier());

        ASN1Sequence policyQualifierInfoSeq = policyInformation.getPolicyQualifiers();

        if (policyQualifierInfoSeq != null) {
            List<PolicyQualifierInfo> policyQualifierInfo = new ArrayList<PolicyQualifierInfo>();

            for (int i = 0; i < policyQualifierInfoSeq.size(); i++) {
                PolicyQualifierInfo policyQualInfo = PolicyQualifierInfo
                        .getInstance(policyQualifierInfoSeq.getObjectAt(i));
                policyQualifierInfo.add(policyQualInfo);
            }/*from   w  w  w .jav  a 2 s.  c o  m*/

            jpqPolicyQualifiers.setPolicyQualifierInfo(policyQualifierInfo);
        }
    }
}