Example usage for org.bouncycastle.asn1.pkcs IssuerAndSerialNumber IssuerAndSerialNumber

List of usage examples for org.bouncycastle.asn1.pkcs IssuerAndSerialNumber IssuerAndSerialNumber

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.pkcs IssuerAndSerialNumber IssuerAndSerialNumber.

Prototype

public IssuerAndSerialNumber(X500Name name, BigInteger certSerialNumber) 

Source Link

Usage

From source file:eu.europa.esig.dss.xades.signature.XAdESBuilder.java

License:Open Source License

/**
 * Incorporates the certificate's references as a child of the given parent node. The first element of the {@code X509Certificate} {@code List} MUST be the signing
 * certificate.//from   w  w  w .  java  2s.co  m
 *
 * @param signingCertificateDom DOM parent element
 * @param certificates          {@code List} of the certificates to be incorporated
 */
protected void incorporateCertificateRef(final Element signingCertificateDom,
        final List<CertificateToken> certificates) {

    for (final CertificateToken certificate : certificates) {

        final Element certDom = DSSXMLUtils.addElement(documentDom, signingCertificateDom, XAdES, XADES_CERT);

        final Element certDigestDom = DSSXMLUtils.addElement(documentDom, certDom, XAdES, XADES_CERT_DIGEST);

        final DigestAlgorithm signingCertificateDigestMethod = params.getSigningCertificateDigestMethod();
        incorporateDigestMethod(certDigestDom, signingCertificateDigestMethod);

        final InMemoryDocument inMemoryCertificate = new InMemoryDocument(certificate.getEncoded());
        incorporateDigestValue(certDigestDom, signingCertificateDigestMethod, inMemoryCertificate);

        if (params.isEn319132()) {
            try {
                final Element issuerSerialDom = DSSXMLUtils.addElement(documentDom, certDom, XAdES,
                        XADES_ISSUER_SERIAL_V2);

                String name = certificate.getCertificate().getIssuerX500Principal().getName();
                IssuerAndSerialNumber issuerAndSerial = new IssuerAndSerialNumber(new X500Name(name),
                        certificate.getCertificate().getSerialNumber());
                byte[] issuer = Base64.encodeBase64(issuerAndSerial.getEncoded());
                DSSXMLUtils.setTextNode(documentDom, issuerSerialDom, new String(issuer));
            } catch (IOException e) {
                throw new RuntimeException(e);
            }

        } else {
            final Element issuerSerialDom = DSSXMLUtils.addElement(documentDom, certDom, XAdES,
                    XADES_ISSUER_SERIAL);

            final Element x509IssuerNameDom = DSSXMLUtils.addElement(documentDom, issuerSerialDom, XMLNS,
                    DS_X509_ISSUER_NAME);
            final String issuerX500PrincipalName = certificate.getIssuerX500Principal().getName();
            DSSXMLUtils.setTextNode(documentDom, x509IssuerNameDom, issuerX500PrincipalName);

            final Element x509SerialNumberDom = DSSXMLUtils.addElement(documentDom, issuerSerialDom, XMLNS,
                    DS_X509_SERIAL_NUMBER);
            final BigInteger serialNumber = certificate.getSerialNumber();
            final String serialNumberString = new String(serialNumber.toString());
            DSSXMLUtils.setTextNode(documentDom, x509SerialNumberDom, serialNumberString);
        }
    }
}

From source file:org.jruby.ext.openssl.impl.RecipInfo.java

License:LGPL

/** c: PKCS7_RECIP_INFO_set
 *
 *//* w  w w  .jav  a  2 s.  co m*/
public void set(X509AuxCertificate cert) throws PKCS7Exception {
    version = 0;
    X500Name issuer = X500Name.getInstance(cert.getIssuerX500Principal().getEncoded());
    BigInteger serial = cert.getSerialNumber();
    issuerAndSerial = new IssuerAndSerialNumber(issuer, serial);
    String algo = addEncryptionIfNeeded(cert.getPublicKey().getAlgorithm());
    keyEncAlgor = new AlgorithmIdentifier(ASN1Registry.sym2oid(algo));
    this.cert = cert;
}

From source file:org.jruby.ext.openssl.impl.SignerInfoWithPkey.java

License:LGPL

public void set(X509AuxCertificate x509, PrivateKey pkey, MessageDigest dgst) throws PKCS7Exception {
    boolean dsa = (pkey instanceof DSAPrivateKey) || (pkey instanceof ECPrivateKey);

    version = new ASN1Integer(1);

    X500Name issuer = X500Name.getInstance(x509.getIssuerX500Principal().getEncoded());
    BigInteger serial = x509.getSerialNumber();
    issuerAndSerialNumber = new IssuerAndSerialNumber(issuer, serial);

    this.pkey = pkey;

    if (dsa) {/* ww w  .ja  v  a2s.c  o m*/
        digAlgorithm = new AlgorithmIdentifier(ASN1Registry.nid2obj(ASN1Registry.NID_sha1));
    } else {
        digAlgorithm = new AlgorithmIdentifier(ASN1Registry.nid2obj(EVP.type(dgst)));
    }

    if (pkey instanceof RSAPrivateKey) {
        digEncryptionAlgorithm = new AlgorithmIdentifier(ASN1Registry.nid2obj(ASN1Registry.NID_rsaEncryption));
    } else if (pkey instanceof DSAPrivateKey) {
        digEncryptionAlgorithm = new AlgorithmIdentifier(ASN1Registry.nid2obj(ASN1Registry.NID_dsa));
    } else if (pkey instanceof ECPrivateKey) {
        digEncryptionAlgorithm = new AlgorithmIdentifier(
                ASN1Registry.nid2obj(ASN1Registry.NID_ecdsa_with_SHA1));
    }
}