org.bouncycastle.asn1.DEROutputStream Java Examples
The following examples show how to use
org.bouncycastle.asn1.DEROutputStream.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: LocalSignedJarBuilder.java From atlas with Apache License 2.0 | 5 votes |
/** * Write the certificate file with a digital signature. */ private void writeSignatureBlock(CMSTypedData data, X509Certificate publicKey, PrivateKey privateKey) throws IOException, CertificateEncodingException, OperatorCreationException, CMSException { ArrayList<X509Certificate> certList = new ArrayList<X509Certificate>(); certList.add(publicKey); JcaCertStore certs = new JcaCertStore(certList); CMSSignedDataGenerator gen = new CMSSignedDataGenerator(); ContentSigner sha1Signer = new JcaContentSignerBuilder("SHA1with" + privateKey.getAlgorithm()).build( privateKey); gen.addSignerInfoGenerator(new JcaSignerInfoGeneratorBuilder(new JcaDigestCalculatorProviderBuilder() .build()).setDirectSignature( true).build(sha1Signer, publicKey)); gen.addCertificates(certs); CMSSignedData sigData = gen.generate(data, false); ASN1InputStream asn1 = new ASN1InputStream(sigData.getEncoded()); DEROutputStream dos = new DEROutputStream(mOutputJar); dos.writeObject(asn1.readObject()); dos.flush(); dos.close(); asn1.close(); }
Example #2
Source File: SignedJarBuilder.java From javaide with GNU General Public License v3.0 | 5 votes |
/** Write the certificate file with a digital signature. */ private void writeSignatureBlock(CMSTypedData data, X509Certificate publicKey, PrivateKey privateKey) throws IOException, CertificateEncodingException, OperatorCreationException, CMSException { ArrayList<X509Certificate> certList = new ArrayList<X509Certificate>(); certList.add(publicKey); JcaCertStore certs = new JcaCertStore(certList); CMSSignedDataGenerator gen = new CMSSignedDataGenerator(); ContentSigner sha1Signer = new JcaContentSignerBuilder( "SHA1with" + privateKey.getAlgorithm()) .build(privateKey); gen.addSignerInfoGenerator( new JcaSignerInfoGeneratorBuilder( new JcaDigestCalculatorProviderBuilder() .build()) .setDirectSignature(true) .build(sha1Signer, publicKey)); gen.addCertificates(certs); CMSSignedData sigData = gen.generate(data, false); ASN1InputStream asn1 = new ASN1InputStream(sigData.getEncoded()); DEROutputStream dos = new DEROutputStream(mOutputJar); dos.writeObject(asn1.readObject()); dos.flush(); dos.close(); asn1.close(); }
Example #3
Source File: V1SchemeSigner.java From walle with Apache License 2.0 | 5 votes |
private static byte[] generateSignatureBlock( SignerConfig signerConfig, byte[] signatureFileBytes) throws InvalidKeyException, CertificateEncodingException, SignatureException { JcaCertStore certs = new JcaCertStore(signerConfig.certificates); X509Certificate signerCert = signerConfig.certificates.get(0); String jcaSignatureAlgorithm = getJcaSignatureAlgorithm( signerCert.getPublicKey(), signerConfig.signatureDigestAlgorithm); try { ContentSigner signer = new JcaContentSignerBuilder(jcaSignatureAlgorithm) .build(signerConfig.privateKey); CMSSignedDataGenerator gen = new CMSSignedDataGenerator(); gen.addSignerInfoGenerator( new SignerInfoGeneratorBuilder( new JcaDigestCalculatorProviderBuilder().build(), SignerInfoSignatureAlgorithmFinder.INSTANCE) .setDirectSignature(true) .build(signer, new JcaX509CertificateHolder(signerCert))); gen.addCertificates(certs); CMSSignedData sigData = gen.generate(new CMSProcessableByteArray(signatureFileBytes), false); ByteArrayOutputStream out = new ByteArrayOutputStream(); try (ASN1InputStream asn1 = new ASN1InputStream(sigData.getEncoded())) { DEROutputStream dos = new DEROutputStream(out); dos.writeObject(asn1.readObject()); } return out.toByteArray(); } catch (OperatorCreationException | CMSException | IOException e) { throw new SignatureException("Failed to generate signature", e); } }
Example #4
Source File: SpnegoContext.java From jcifs with GNU Lesser General Public License v2.1 | 5 votes |
/** * @param mechs * @return * @throws CIFSException */ private static byte[] encodeMechs ( ASN1ObjectIdentifier[] mechs ) throws CIFSException { try { ByteArrayOutputStream bos = new ByteArrayOutputStream(); DEROutputStream dos = new DEROutputStream(bos); dos.writeObject(new DERSequence(mechs)); dos.close(); return bos.toByteArray(); } catch ( IOException e ) { throw new CIFSException("Failed to encode mechList", e); } }
Example #5
Source File: NegTokenInit.java From jcifs with GNU Lesser General Public License v2.1 | 5 votes |
@Override public byte[] toByteArray () { try { ASN1EncodableVector fields = new ASN1EncodableVector(); ASN1ObjectIdentifier[] mechs = getMechanisms(); if ( mechs != null ) { ASN1EncodableVector vector = new ASN1EncodableVector(); for ( int i = 0; i < mechs.length; i++ ) { vector.add(mechs[ i ]); } fields.add(new DERTaggedObject(true, 0, new DERSequence(vector))); } int ctxFlags = getContextFlags(); if ( ctxFlags != 0 ) { fields.add(new DERTaggedObject(true, 1, new DERBitString(ctxFlags))); } byte[] mechanismToken = getMechanismToken(); if ( mechanismToken != null ) { fields.add(new DERTaggedObject(true, 2, new DEROctetString(mechanismToken))); } byte[] mechanismListMIC = getMechanismListMIC(); if ( mechanismListMIC != null ) { fields.add(new DERTaggedObject(true, 3, new DEROctetString(mechanismListMIC))); } ASN1EncodableVector ev = new ASN1EncodableVector(); ev.add(SPNEGO_OID); ev.add(new DERTaggedObject(true, 0, new DERSequence(fields))); ByteArrayOutputStream collector = new ByteArrayOutputStream(); DEROutputStream der = new DEROutputStream(collector); DERApplicationSpecific derApplicationSpecific = new DERApplicationSpecific(0, ev); der.writeObject(derApplicationSpecific); return collector.toByteArray(); } catch ( IOException ex ) { throw new IllegalStateException(ex.getMessage()); } }
Example #6
Source File: NegTokenTarg.java From jcifs with GNU Lesser General Public License v2.1 | 5 votes |
@Override public byte[] toByteArray () { try { ByteArrayOutputStream collector = new ByteArrayOutputStream(); DEROutputStream der = new DEROutputStream(collector); ASN1EncodableVector fields = new ASN1EncodableVector(); int res = getResult(); if ( res != UNSPECIFIED_RESULT ) { fields.add(new DERTaggedObject(true, 0, new ASN1Enumerated(res))); } ASN1ObjectIdentifier mech = getMechanism(); if ( mech != null ) { fields.add(new DERTaggedObject(true, 1, mech)); } byte[] mechanismToken = getMechanismToken(); if ( mechanismToken != null ) { fields.add(new DERTaggedObject(true, 2, new DEROctetString(mechanismToken))); } byte[] mechanismListMIC = getMechanismListMIC(); if ( mechanismListMIC != null ) { fields.add(new DERTaggedObject(true, 3, new DEROctetString(mechanismListMIC))); } der.writeObject(new DERTaggedObject(true, 1, new DERSequence(fields))); return collector.toByteArray(); } catch ( IOException ex ) { throw new IllegalStateException(ex.getMessage()); } }
Example #7
Source File: SpnegoContext.java From jcifs-ng with GNU Lesser General Public License v2.1 | 5 votes |
/** * @param mechs * @return * @throws CIFSException */ private static byte[] encodeMechs ( ASN1ObjectIdentifier[] mechs ) throws CIFSException { try { ByteArrayOutputStream bos = new ByteArrayOutputStream(); DEROutputStream dos = new DEROutputStream(bos); dos.writeObject(new DERSequence(mechs)); dos.close(); return bos.toByteArray(); } catch ( IOException e ) { throw new CIFSException("Failed to encode mechList", e); } }
Example #8
Source File: NegTokenInit.java From jcifs-ng with GNU Lesser General Public License v2.1 | 5 votes |
@Override public byte[] toByteArray () { try { ASN1EncodableVector fields = new ASN1EncodableVector(); ASN1ObjectIdentifier[] mechs = getMechanisms(); if ( mechs != null ) { ASN1EncodableVector vector = new ASN1EncodableVector(); for ( int i = 0; i < mechs.length; i++ ) { vector.add(mechs[ i ]); } fields.add(new DERTaggedObject(true, 0, new DERSequence(vector))); } int ctxFlags = getContextFlags(); if ( ctxFlags != 0 ) { fields.add(new DERTaggedObject(true, 1, new DERBitString(ctxFlags))); } byte[] mechanismToken = getMechanismToken(); if ( mechanismToken != null ) { fields.add(new DERTaggedObject(true, 2, new DEROctetString(mechanismToken))); } byte[] mechanismListMIC = getMechanismListMIC(); if ( mechanismListMIC != null ) { fields.add(new DERTaggedObject(true, 3, new DEROctetString(mechanismListMIC))); } ASN1EncodableVector ev = new ASN1EncodableVector(); ev.add(SPNEGO_OID); ev.add(new DERTaggedObject(true, 0, new DERSequence(fields))); ByteArrayOutputStream collector = new ByteArrayOutputStream(); DEROutputStream der = new DEROutputStream(collector); DERApplicationSpecific derApplicationSpecific = new DERApplicationSpecific(0, ev); der.writeObject(derApplicationSpecific); return collector.toByteArray(); } catch ( IOException ex ) { throw new IllegalStateException(ex.getMessage()); } }
Example #9
Source File: NegTokenTarg.java From jcifs-ng with GNU Lesser General Public License v2.1 | 5 votes |
@Override public byte[] toByteArray () { try { ByteArrayOutputStream collector = new ByteArrayOutputStream(); DEROutputStream der = new DEROutputStream(collector); ASN1EncodableVector fields = new ASN1EncodableVector(); int res = getResult(); if ( res != UNSPECIFIED_RESULT ) { fields.add(new DERTaggedObject(true, 0, new ASN1Enumerated(res))); } ASN1ObjectIdentifier mech = getMechanism(); if ( mech != null ) { fields.add(new DERTaggedObject(true, 1, mech)); } byte[] mechanismToken = getMechanismToken(); if ( mechanismToken != null ) { fields.add(new DERTaggedObject(true, 2, new DEROctetString(mechanismToken))); } byte[] mechanismListMIC = getMechanismListMIC(); if ( mechanismListMIC != null ) { fields.add(new DERTaggedObject(true, 3, new DEROctetString(mechanismListMIC))); } der.writeObject(new DERTaggedObject(true, 1, new DERSequence(fields))); return collector.toByteArray(); } catch ( IOException ex ) { throw new IllegalStateException(ex.getMessage()); } }
Example #10
Source File: ZipUtils.java From isu with GNU General Public License v3.0 | 5 votes |
/** Sign data and write the digital signature to 'out'. */ private static void writeSignatureBlock( CMSTypedData data, X509Certificate publicKey, PrivateKey privateKey, OutputStream out) throws IOException, CertificateEncodingException, OperatorCreationException, CMSException { ArrayList < X509Certificate > certList = new ArrayList < > (1); certList.add(publicKey); JcaCertStore certs = new JcaCertStore(certList); CMSSignedDataGenerator gen = new CMSSignedDataGenerator(); ContentSigner signer = new JcaContentSignerBuilder(getSignatureAlgorithm(publicKey)) .setProvider(sBouncyCastleProvider) .build(privateKey); gen.addSignerInfoGenerator( new JcaSignerInfoGeneratorBuilder( new JcaDigestCalculatorProviderBuilder() .setProvider(sBouncyCastleProvider) .build()) .setDirectSignature(true) .build(signer, publicKey)); gen.addCertificates(certs); CMSSignedData sigData = gen.generate(data, false); ASN1InputStream asn1 = new ASN1InputStream(sigData.getEncoded()); DEROutputStream dos = new DEROutputStream(out); dos.writeObject(asn1.readObject()); }
Example #11
Source File: Pkcs10Util.java From keystore-explorer with GNU General Public License v3.0 | 5 votes |
/** * DER encode a CSR and PEM the encoding. * * @return The PEM'd encoding * @param csr * The CSR * @throws CryptoException * If a problem occurs getting the PEM encoded CSR */ public static String getCsrEncodedDerPem(PKCS10CertificationRequest csr) throws CryptoException { try { // Base 64 encoding of CSR ByteArrayOutputStream baos = new ByteArrayOutputStream(); DEROutputStream deros = new DEROutputStream(baos); deros.writeObject(csr.toASN1Structure().toASN1Primitive()); String tmp = new String(Base64.encode(baos.toByteArray())); // Header String csrStr = BEGIN_CSR_FORM_1 + "\n"; // Limit line lengths between header and footer for (int i = 0; i < tmp.length(); i += MAX_PRINTABLE_ENC_LINE_LENGTH) { int lineLength; if ((i + MAX_PRINTABLE_ENC_LINE_LENGTH) > tmp.length()) { lineLength = (tmp.length() - i); } else { lineLength = MAX_PRINTABLE_ENC_LINE_LENGTH; } csrStr += tmp.substring(i, (i + lineLength)) + "\n"; } // Footer csrStr += END_CSR_FORM_1 + "\n"; return csrStr; } catch (IOException ex) { throw new CryptoException(res.getString("NoPemPkcs10Csr.exception.message"), ex); } }
Example #12
Source File: PdfPublicKeySecurityHandler.java From itext2 with GNU Lesser General Public License v3.0 | 2 votes |
public byte[] getEncodedRecipient(int index) throws IOException, GeneralSecurityException { //Certificate certificate = recipient.getX509(); PdfPublicKeyRecipient recipient = (PdfPublicKeyRecipient)recipients.get(index); byte[] cms = recipient.getCms(); if (cms != null) return cms; Certificate certificate = recipient.getCertificate(); int permission = recipient.getPermission();//PdfWriter.AllowCopy | PdfWriter.AllowPrinting | PdfWriter.AllowScreenReaders | PdfWriter.AllowAssembly; int revision = 3; permission |= revision==3 ? 0xfffff0c0 : 0xffffffc0; permission &= 0xfffffffc; permission += 1; byte[] pkcs7input = new byte[24]; byte one = (byte)(permission); byte two = (byte)(permission >> 8); byte three = (byte)(permission >> 16); byte four = (byte)(permission >> 24); System.arraycopy(seed, 0, pkcs7input, 0, 20); // put this seed in the pkcs7 input pkcs7input[20] = four; pkcs7input[21] = three; pkcs7input[22] = two; pkcs7input[23] = one; ASN1Primitive obj = createDERForRecipient(pkcs7input, (X509Certificate)certificate); ByteArrayOutputStream baos = new ByteArrayOutputStream(); DEROutputStream k = new DEROutputStream(baos); k.writeObject(obj); cms = baos.toByteArray(); recipient.setCms(cms); return cms; }