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

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

Introduction

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

Prototype

public PolicyQualifierInfo(ASN1Sequence as) 

Source Link

Document

Creates a new PolicyQualifierInfo instance.

Usage

From source file:com.otterca.common.crypto.SimplePolicyGeneratorImpl.java

License:Apache License

/**
 * Get CPS policy information./*from w  ww  .  j ava 2 s. c o m*/
 * 
 * @return
 */
public PolicyInformation getCpsPolicyInformation() {
    PolicyInformation cps = null;
    if (cpsUri != null) {
        cps = new PolicyInformation(id_qt_cps, new DERSequence(new PolicyQualifierInfo(cpsUri)));
    }
    return cps;
}

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

License:Open Source License

/**
 * Obtiene un PolicyInformation a partir de los datos de la política.
 * Sirve para los datos de SigningCertificate y SigningCertificateV2. Tiene que llevar algunos
 * datos de la política.//from ww  w  .  j av a2s  .  co  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 = new PolicyQualifierInfo(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().replace("urn:oid:", ""))) //$NON-NLS-1$ //$NON-NLS-2$
        };
    }

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

}

From source file:org.cesecore.certificates.certificate.certextensions.standard.CertificatePolicies.java

License:Open Source License

/**
 * Obtains the Policy Qualifier Information object
 * //from  w w w  .  j  av  a2s .  com
 * @param policy,
 *          CertificatePolicy with oid, user notice and cps uri
 * @param displayencoding,
 *          the encoding used for UserNotice text, DisplayText.CONTENT_TYPE_BMPSTRING, CONTENT_TYPE_UTF8STRING, CONTENT_TYPE_IA5STRING or CONTENT_TYPE_VISIBLESTRING 
 *          
 * @return PolicyQualifierInfo
 */
private PolicyQualifierInfo getPolicyQualifierInformation(final CertificatePolicy policy,
        final int displayencoding) {
    PolicyQualifierInfo pqi = null;
    final String qualifierId = policy.getQualifierId();
    if ((qualifierId != null) && !StringUtils.isEmpty(qualifierId.trim())) {
        final String qualifier = policy.getQualifier();
        if ((qualifier != null) && !StringUtils.isEmpty(qualifier.trim())) {
            if (qualifierId.equals(PolicyQualifierId.id_qt_cps.getId())) {
                pqi = new PolicyQualifierInfo(qualifier);
            } else if (qualifierId.equals(PolicyQualifierId.id_qt_unotice.getId())) {
                // Normally we would just use 'DisplayText(unotice)' here. IE has problems with UTF8 though, so lets stick with BMSSTRING to satisfy Bills sick needs.
                final UserNotice un = new UserNotice(null, new DisplayText(displayencoding, qualifier));
                pqi = new PolicyQualifierInfo(PolicyQualifierId.id_qt_unotice, un);
            }
        }
    }
    return pqi;
}

From source file:org.cryptacular.x509.ExtensionReaderTest.java

License:Open Source License

@DataProvider(name = "certificate-policies")
public Object[][] getCertificatePolicies() {
    return new Object[][] { new Object[] { CertUtil.readCertificate(CRT_PATH + "serac-dev-test.crt"),
            new PolicyInformation[] {
                    new PolicyInformation(new ASN1ObjectIdentifier("1.3.6.1.4.1.6760.5.2.2.2.1")),
                    new PolicyInformation(new ASN1ObjectIdentifier("1.3.6.1.4.1.6760.5.2.2.1.1")),
                    new PolicyInformation(new ASN1ObjectIdentifier("1.3.6.1.4.1.6760.5.2.2.4.1"),
                            new DERSequence(
                                    new PolicyQualifierInfo("http://www.pki.vt.edu/vtuca/cps/index.html"))),
                    new PolicyInformation(new ASN1ObjectIdentifier("1.3.6.1.4.1.6760.5.2.2.3.1")), }, }, };
}

From source file:org.xipki.ca.api.profile.x509.X509CertUtil.java

License:Open Source License

private static ASN1Sequence createPolicyQualifiers(final List<CertificatePolicyQualifier> qualifiers) {
    List<PolicyQualifierInfo> qualifierInfos = new ArrayList<>(qualifiers.size());
    for (CertificatePolicyQualifier qualifier : qualifiers) {
        PolicyQualifierInfo qualifierInfo;
        if (qualifier.getCpsUri() != null) {
            qualifierInfo = new PolicyQualifierInfo(qualifier.getCpsUri());
        } else if (qualifier.getUserNotice() != null) {
            UserNotice userNotice = new UserNotice(null, qualifier.getUserNotice());
            qualifierInfo = new PolicyQualifierInfo(PKCSObjectIdentifiers.id_spq_ets_unotice, userNotice);
        } else {//  w ww.ja v  a  2s  . c o  m
            qualifierInfo = null;
        }

        if (qualifierInfo != null) {
            qualifierInfos.add(qualifierInfo);
        }
        //PolicyQualifierId qualifierId
    }

    return new DERSequence(qualifierInfos.toArray(new PolicyQualifierInfo[0]));
}

From source file:org.xipki.pki.ca.certprofile.XmlX509CertprofileUtil.java

License:Open Source License

private static ASN1Sequence createPolicyQualifiers(final List<CertificatePolicyQualifier> qualifiers) {
    ParamUtil.requireNonNull("qualifiers", qualifiers);
    List<PolicyQualifierInfo> qualifierInfos = new ArrayList<>(qualifiers.size());
    for (CertificatePolicyQualifier qualifier : qualifiers) {
        PolicyQualifierInfo qualifierInfo;
        if (qualifier.getCpsUri() != null) {
            qualifierInfo = new PolicyQualifierInfo(qualifier.getCpsUri());
        } else if (qualifier.getUserNotice() != null) {
            UserNotice userNotice = new UserNotice(null, qualifier.getUserNotice());
            qualifierInfo = new PolicyQualifierInfo(PKCSObjectIdentifiers.id_spq_ets_unotice, userNotice);
        } else {/*from w  ww. ja  va 2  s  .c o m*/
            qualifierInfo = null;
        }

        if (qualifierInfo != null) {
            qualifierInfos.add(qualifierInfo);
        }
        //PolicyQualifierId qualifierId
    }

    return new DERSequence(qualifierInfos.toArray(new PolicyQualifierInfo[0]));
}