List of usage examples for org.bouncycastle.asn1.x509 GeneralName GeneralName
public GeneralName(X500Name dirName)
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; }