Example usage for org.bouncycastle.asn1.x509 Extension getExtnId

List of usage examples for org.bouncycastle.asn1.x509 Extension getExtnId

Introduction

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

Prototype

public ASN1ObjectIdentifier getExtnId() 

Source Link

Usage

From source file:org.cryptable.pki.communication.PKICMPMessages.java

License:Open Source License

/**
 * Update a certification request with local key generation
 *
 * @param certificate to be updated//from   w  w  w  . j av  a  2  s .com
 * @return return the binary ASN.1 message for a certification request
 * @throws CertificateEncodingException
 * @throws CMSException
 * @throws CRMFException
 * @throws OperatorCreationException
 * @throws CMPException
 * @throws IOException
 */
public byte[] createKeyUpdateMessageWithLocalKey(X509Certificate certificate, KeyPair keyPair)
        throws CertificateEncodingException, CMSException, CRMFException, OperatorCreationException,
        CMPException, IOException, PKICMPMessageException, NoSuchFieldException, IllegalAccessException {
    JcaCertificateRequestMessageBuilder certReqBuild = new JcaCertificateRequestMessageBuilder(BigInteger.ZERO);
    X509CertificateHolder x509CertificateHolder = new JcaX509CertificateHolder(certificate);

    certReqBuild.setSubject(x509CertificateHolder.getSubject());
    certReqBuild.setIssuer(x509CertificateHolder.getIssuer());
    certReqBuild.setSerialNumber(x509CertificateHolder.getSerialNumber());
    if (keyPair != null) {
        certReqBuild.setPublicKey(keyPair.getPublic());
        if (keyPair.getPrivate() != null) {
            certReqBuild.addControl(
                    new JcaPKIArchiveControlBuilder(keyPair.getPrivate(), x509CertificateHolder.getIssuer())
                            .addRecipientGenerator(
                                    new JceKeyTransRecipientInfoGenerator(pkiKeyStore.getRecipientCertificate())
                                            .setProvider(pkiKeyStore.getProvider()))
                            .build(new JceCMSContentEncryptorBuilder(
                                    new ASN1ObjectIdentifier(CMSEnvelopedDataGenerator.DES_EDE3_CBC))
                                            .setProvider(pkiKeyStore.getProvider()).build()));

        }
    } else
        certReqBuild.setPublicKey(x509CertificateHolder.getSubjectPublicKeyInfo());

    if (extensions != null) {
        for (Extension extension : extensions)
            certReqBuild.addExtension(extension.getExtnId(), extension.isCritical(),
                    extension.getParsedValue());
    } else {
        if (x509CertificateHolder.getExtensions() != null) {
            for (ASN1ObjectIdentifier oid : x509CertificateHolder.getExtensions().getExtensionOIDs()) {
                certReqBuild.addExtension(oid,
                        x509CertificateHolder.getExtensions().getExtension(oid).isCritical(),
                        x509CertificateHolder.getExtensions().getExtensionParsedValue(oid));
            }
        }
    }

    OptionalValidity tempOptionalValidity;
    if (optionalValidity != null) {
        tempOptionalValidity = optionalValidity;
    } else {
        tempOptionalValidity = new OptionalValidity(new Time(x509CertificateHolder.getNotBefore()),
                new Time(x509CertificateHolder.getNotAfter()));
    }
    Field field = certReqBuild.getClass().getSuperclass().getDeclaredField("templateBuilder");
    field.setAccessible(true);
    CertTemplateBuilder certTemplateBuilder = (CertTemplateBuilder) field.get(certReqBuild);
    certTemplateBuilder.setValidity(tempOptionalValidity);

    CertReqMessages certReqMsgs = new CertReqMessages(certReqBuild.build().toASN1Structure());

    return createProtectedPKIMessage(new PKIBody(PKIBody.TYPE_KEY_UPDATE_REQ, certReqMsgs));
}

From source file:org.cryptable.pki.communication.PKICMPMessages.java

License:Open Source License

/**
 * Update a certification request with remote key generation
 *
 * @param certificate to be updated//from   w  ww . j  a  va  2 s  . com
 * @return return the binary ASN.1 message for a certification request
 * @throws CertificateEncodingException
 * @throws CMSException
 * @throws CRMFException
 * @throws OperatorCreationException
 * @throws CMPException
 * @throws IOException
 */
public byte[] createKeyUpdateMessageWithRemoteKey(X509Certificate certificate)
        throws CertificateEncodingException, CMSException, CRMFException, OperatorCreationException,
        CMPException, IOException, PKICMPMessageException, NoSuchFieldException, IllegalAccessException {
    JcaCertificateRequestMessageBuilder certReqBuild = new JcaCertificateRequestMessageBuilder(BigInteger.ZERO);
    X509CertificateHolder x509CertificateHolder = new JcaX509CertificateHolder(certificate);

    certReqBuild.setSubject(x509CertificateHolder.getSubject());
    certReqBuild.setIssuer(x509CertificateHolder.getIssuer());
    certReqBuild.setSerialNumber(x509CertificateHolder.getSerialNumber());

    if (extensions != null) {
        for (Extension extension : extensions)
            certReqBuild.addExtension(extension.getExtnId(), extension.isCritical(),
                    extension.getParsedValue());
    } else {
        if (x509CertificateHolder.getExtensions() != null) {
            for (ASN1ObjectIdentifier oid : x509CertificateHolder.getExtensions().getExtensionOIDs()) {
                certReqBuild.addExtension(oid,
                        x509CertificateHolder.getExtensions().getExtension(oid).isCritical(),
                        x509CertificateHolder.getExtensions().getExtensionParsedValue(oid));
            }
        }
    }

    OptionalValidity tempOptionalValidity;
    if (optionalValidity != null) {
        tempOptionalValidity = optionalValidity;
    } else {
        tempOptionalValidity = new OptionalValidity(new Time(x509CertificateHolder.getNotBefore()),
                new Time(x509CertificateHolder.getNotAfter()));
    }
    Field field = certReqBuild.getClass().getSuperclass().getDeclaredField("templateBuilder");
    field.setAccessible(true);
    CertTemplateBuilder certTemplateBuilder = (CertTemplateBuilder) field.get(certReqBuild);
    certTemplateBuilder.setValidity(tempOptionalValidity);

    CertReqMessages certReqMsgs = new CertReqMessages(certReqBuild.build().toASN1Structure());

    return createProtectedPKIMessage(new PKIBody(PKIBody.TYPE_KEY_UPDATE_REQ, certReqMsgs));
}

From source file:org.digidoc4j.impl.bdoc.ocsp.BDocTSOcspSourceTest.java

License:GNU General Public License

@Test
public void gettingOcspNonce() throws Exception {
    Configuration configuration = new Configuration(Configuration.Mode.TEST);
    BDocTSOcspSource ocspSource = new BDocTSOcspSource(configuration);
    Extension nonce = ocspSource.createNonce();
    assertFalse(nonce.isCritical());/*from   w  w  w  .  j  av  a2  s. c om*/
    assertEquals(OCSPObjectIdentifiers.id_pkix_ocsp_nonce, nonce.getExtnId());
    assertTrue(nonce.getExtnValue().toString().length() > 0);
}

From source file:org.opensaml.xml.security.x509.tls.MockX509Certificate.java

License:Open Source License

/**
 * Constructor.//from w w  w .  j  av a 2  s.  c o m
 *
 * @param subjectX500Principal
 */
public MockX509Certificate(X500Principal subject, Collection<List<?>> subjAlts) {
    super();
    subjectX500Principal = subject;
    subjectAltNames = subjAlts;
    extensions = new HashMap<String, byte[]>();

    // Add proper DER-encoded alt names extension based on subjAlts values, so works with code that extracts 
    // subject alt names via extensions parsing.
    if (subjAlts != null && subjAlts.size() > 0) {
        GeneralNamesBuilder generalNamesBuilder = new GeneralNamesBuilder();
        for (List<?> subjAlt : subjAlts) {
            Integer type = (Integer) subjAlt.get(0);
            String value = (String) subjAlt.get(1);
            GeneralName generalName = new GeneralName(type, value);
            generalNamesBuilder.addName(generalName);
        }
        GeneralNames generalNames = generalNamesBuilder.build();

        try {
            Extension ext = new Extension(Extension.subjectAlternativeName, false, generalNames.getEncoded());
            extensions.put(ext.getExtnId().getId(), ext.getExtnValue().getEncoded("DER"));
        } catch (IOException e) {
            throw new RuntimeException("Problem building subject alt names extension", e);
        }
    }

}

From source file:org.poreid.verify.ocsp.OCSPClient.java

License:Open Source License

private OCSPReq generateOCSPRequest(X509Certificate issuerCert, BigInteger serialNumber)
        throws CertificateEncodingException, OperatorCreationException, OCSPException, IOException {
    Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

    OCSPReqBuilder gen = new OCSPReqBuilder();
    gen.addRequest(new JcaCertificateID(
            new JcaDigestCalculatorProviderBuilder().setProvider("BC").build().get(CertificateID.HASH_SHA1),
            issuerCert, serialNumber));/*from w ww  .j  av a  2s  . c  o  m*/

    BigInteger nonce = BigInteger.valueOf(System.currentTimeMillis());
    Extension ext = new Extension(OCSPObjectIdentifiers.id_pkix_ocsp_nonce, true,
            new DEROctetString(nonce.toByteArray()));
    gen.setRequestExtensions(new Extensions(new Extension[] { ext }));
    sentNonce = ext.getExtnId().getEncoded();

    return gen.build();
}

From source file:org.xwiki.crypto.pkix.internal.extension.AbstractBcX509ExtensionBuilder.java

License:Open Source License

@Override
public X509ExtensionBuilder addExtensions(X509Extensions extensionSet) throws IOException {
    if (extensionSet == null) {
        return this;
    }//from w w  w.j  a  va 2s . c  om

    // Optimisation
    if (extensionSet instanceof BcX509Extensions) {
        Extensions exts = ((BcX509Extensions) extensionSet).getExtensions();
        @SuppressWarnings("unchecked")
        Enumeration<ASN1ObjectIdentifier> oids = exts.oids();
        while (oids.hasMoreElements()) {
            ASN1ObjectIdentifier oid = oids.nextElement();
            Extension ext = exts.getExtension(oid);
            this.extensions.addExtension(ext.getExtnId(), ext.isCritical(), ext.getParsedValue());
        }
    } else {
        // Fallback
        for (String oid : extensionSet.getExtensionOID()) {
            this.extensions.addExtension(new ASN1ObjectIdentifier(oid), extensionSet.isCritical(oid),
                    extensionSet.getExtensionValue(oid));
        }
    }
    return this;
}