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

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

Introduction

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

Prototype

public GeneralName(X500Name dirName) 

Source Link

Usage

From source file:org.xwiki.crypto.pkix.params.x509certificate.extension.X509DirectoryName.java

License:Open Source License

@Override
public GeneralName getGeneralName() {
    return new GeneralName(getX500Name());
}

From source file:se.tillvaxtverket.ttsigvalws.ttwssigvalidation.pdf.PdfBoxSigUtil.java

License:Open Source License

public static ASN1EncodableVector getSignedCertAttr(DigestAlgorithm digestAlgo, X509Certificate certificate,
        boolean includeIssuerSerial)
        throws NoSuchAlgorithmException, CertificateEncodingException, IOException {
    final X500Name issuerX500Name = new X509CertificateHolder(certificate.getEncoded()).getIssuer();
    final GeneralName generalName = new GeneralName(issuerX500Name);
    final GeneralNames generalNames = new GeneralNames(generalName);
    final BigInteger serialNumber = certificate.getSerialNumber();
    final IssuerSerial issuerSerial = new IssuerSerial(generalNames, serialNumber);

    ASN1EncodableVector signedCert = new ASN1EncodableVector();

    boolean essSigCertV2;
    ASN1ObjectIdentifier signedCertOid;// w ww  . j a  v  a2  s. c o m
    switch (digestAlgo) {
    case SHA1:
        signedCertOid = new ASN1ObjectIdentifier(PdfObjectIds.ID_AA_SIGNING_CERTIFICATE_V1);
        essSigCertV2 = false;
        break;
    default:
        signedCertOid = new ASN1ObjectIdentifier(PdfObjectIds.ID_AA_SIGNING_CERTIFICATE_V2);
        essSigCertV2 = true;
    }

    MessageDigest md = MessageDigest.getInstance(digestAlgo.getName());
    md.update(certificate.getEncoded());
    byte[] certHash = md.digest();
    DEROctetString certHashOctetStr = new DEROctetString(certHash);

    signedCert.add(signedCertOid);

    ASN1EncodableVector attrValSet = new ASN1EncodableVector();
    ASN1EncodableVector signingCertObjSeq = new ASN1EncodableVector();
    ASN1EncodableVector essCertV2Seq = new ASN1EncodableVector();
    ASN1EncodableVector certSeq = new ASN1EncodableVector();
    ASN1EncodableVector algoSeq = new ASN1EncodableVector();
    algoSeq.add(new ASN1ObjectIdentifier(digestAlgo.getOid()));
    algoSeq.add(DERNull.INSTANCE);
    if (essSigCertV2) {
        certSeq.add(new DERSequence(algoSeq));
    }
    //Add cert hash
    certSeq.add(new DEROctetString(certHash));
    if (includeIssuerSerial) {
        certSeq.add(issuerSerial);
    }

    //Finalize assembly
    essCertV2Seq.add(new DERSequence(certSeq));
    signingCertObjSeq.add(new DERSequence(essCertV2Seq));
    attrValSet.add(new DERSequence(signingCertObjSeq));
    signedCert.add(new DERSet(attrValSet));

    return signedCert;
}