private X509AttributeCertificate readPEMCertificate( InputStream in) throws IOException { ASN1Sequence seq = PEM_PARSER.readPEMObject(in); if (seq != null) { return new X509V2AttributeCertificate(seq.getEncoded()); } return null; }
private X509AttributeCertificate readPEMCertificate( InputStream in) throws IOException { ASN1Sequence seq = PEM_PARSER.readPEMObject(in); if (seq != null) { return new X509V2AttributeCertificate(seq.getEncoded()); } return null; }
/** A partir de un numero de serie de un certificado, devuelve un array con * el certificado y su cadena de confianza. * @param certificates * Certificados de los firmantes. * @param serialNumber * Número de serie del certificado a firmar. * @return El certificado (en la posición 0 y su cadena de confianza * en orden). */ private static X509Certificate[] searchCert(final ASN1Set certificates, final ASN1Integer serialNumber) { final Enumeration<?> certSet = certificates.getObjects(); while (certSet.hasMoreElements()) { final X509Certificate c; try { c = (X509Certificate) CertificateFactory.getInstance("X.509").generateCertificate(new ByteArrayInputStream(((ASN1Sequence) certSet.nextElement()).getEncoded())); //$NON-NLS-1$ } catch(final Exception e) { LOGGER.severe("Error extrayendo los certificados del Set ASN.1, puede que se haya omitido un elemento valido" + e); //$NON-NLS-1$ continue; } if (c.getSerialNumber().equals(serialNumber.getValue())) { return new X509Certificate[] { c }; } } LOGGER.severe("El certificados pedido no estaba en la lista, se devolvera un array vacio"); //$NON-NLS-1$ return new X509Certificate[0]; }
/** Método que, apartir de un numero de serie de un certificado, * devuelve su nombre común (CN). De no existir el CN, * devolverá el nombre de la unidad organizativa. * @param certificates * Certificados de los firmantes. * @param serialNumber * Número de serie del certificado a firmar. * @return El nombre común. */ private static String searchName(final ASN1Set certificates, final ASN1Integer serialNumber) { final Enumeration<?> certSet = certificates.getObjects(); while (certSet.hasMoreElements()) { final X509Certificate c; try { c = (X509Certificate) CertificateFactory.getInstance("X.509").generateCertificate(new ByteArrayInputStream(((ASN1Sequence) certSet.nextElement()).getEncoded())); //$NON-NLS-1$ } catch(final Exception e) { LOGGER.severe("Error extrayendo los certificados del Set ASN.1, puede que se haya omitido un elemento valido" + e); //$NON-NLS-1$ continue; } if (c.getSerialNumber().equals(serialNumber.getValue())) { return AOUtil.getCN(c); } } LOGGER.info("No se ha encontrado el certificado indicado, se devolvera una cadena vacia"); //$NON-NLS-1$ return ""; //$NON-NLS-1$ }
public byte[] getEncoded() throws IOException { return Arrays.concatenate(certificateHolder.getEncoded(), trustBlock.toASN1Sequence().getEncoded()); }
public byte[] getEncoded() throws IOException { return Arrays.concatenate(certificateHolder.getEncoded(), trustBlock.toASN1Sequence().getEncoded()); }
private BigInteger[] derDecode( byte[] encoding) throws IOException { ASN1Sequence s = (ASN1Sequence)ASN1Primitive.fromByteArray(encoding); if (s.size() != 2) { throw new IOException("malformed signature"); } if (!Arrays.areEqual(encoding, s.getEncoded(ASN1Encoding.DER))) { throw new IOException("malformed signature"); } return new BigInteger[]{ ((ASN1Integer)s.getObjectAt(0)).getValue(), ((ASN1Integer)s.getObjectAt(1)).getValue() }; }
private X509AttributeCertificate getCertificate() throws IOException { if (sData != null) { while (sDataObjectCount < sData.size()) { Object obj = sData.getObjectAt(sDataObjectCount++); if (obj instanceof ASN1TaggedObject && ((ASN1TaggedObject)obj).getTagNo() == 2) { return new X509V2AttributeCertificate( ASN1Sequence.getInstance((ASN1TaggedObject)obj, false).getEncoded()); } } } return null; }
private X509AttributeCertificate getCertificate() throws IOException { if (sData != null) { while (sDataObjectCount < sData.size()) { Object obj = sData.getObjectAt(sDataObjectCount++); if (obj instanceof ASN1TaggedObject && ((ASN1TaggedObject)obj).getTagNo() == 2) { return new X509V2AttributeCertificate( ASN1Sequence.getInstance((ASN1TaggedObject)obj, false).getEncoded()); } } } return null; }
public BigInteger[] decode( byte[] encoding) throws IOException { ASN1Sequence s = (ASN1Sequence)ASN1Primitive.fromByteArray(encoding); if (s.size() != 2) { throw new IOException("malformed signature"); } if (!Arrays.areEqual(encoding, s.getEncoded(ASN1Encoding.DER))) { throw new IOException("malformed signature"); } BigInteger[] sig = new BigInteger[2]; sig[0] = ASN1Integer.getInstance(s.getObjectAt(0)).getValue(); sig[1] = ASN1Integer.getInstance(s.getObjectAt(1)).getValue(); return sig; } }
public BigInteger[] decode( byte[] encoding) throws IOException { ASN1Sequence s = (ASN1Sequence)ASN1Primitive.fromByteArray(encoding); if (s.size() != 2) { throw new IOException("malformed signature"); } if (!Arrays.areEqual(encoding, s.getEncoded(ASN1Encoding.DER))) { throw new IOException("malformed signature"); } BigInteger[] sig = new BigInteger[2]; sig[0] = ASN1Integer.getInstance(s.getObjectAt(0)).getValue(); sig[1] = ASN1Integer.getInstance(s.getObjectAt(1)).getValue(); return sig; } }
private PKCS12PfxPduBuilder addEncryptedData(OutputEncryptor dataEncryptor, ASN1Sequence data) throws IOException { CMSEncryptedDataGenerator envGen = new CMSEncryptedDataGenerator(); try { dataVector.add(envGen.generate(new CMSProcessableByteArray(data.getEncoded()), dataEncryptor).toASN1Structure()); } catch (CMSException e) { throw new PKCSIOException(e.getMessage(), e.getCause()); } return this; }
private PKCS12PfxPduBuilder addEncryptedData(OutputEncryptor dataEncryptor, ASN1Sequence data) throws IOException { CMSEncryptedDataGenerator envGen = new CMSEncryptedDataGenerator(); try { dataVector.add(envGen.generate(new CMSProcessableByteArray(data.getEncoded()), dataEncryptor).toASN1Structure()); } catch (CMSException e) { throw new PKCSIOException(e.getMessage(), e.getCause()); } return this; }
algParams.init(seq.getEncoded());
private X509AttributeCertificate readDERCertificate( InputStream in) throws IOException { ASN1InputStream dIn = new ASN1InputStream(in); ASN1Sequence seq = (ASN1Sequence)dIn.readObject(); if (seq.size() > 1 && seq.getObjectAt(0) instanceof DERObjectIdentifier) { if (seq.getObjectAt(0).equals(PKCSObjectIdentifiers.signedData)) { sData = new SignedData(ASN1Sequence.getInstance( (ASN1TaggedObject)seq.getObjectAt(1), true)).getCertificates(); return getCertificate(); } } return new X509V2AttributeCertificate(seq.getEncoded()); }
private X509AttributeCertificate readDERCertificate( InputStream in) throws IOException { ASN1InputStream dIn = new ASN1InputStream(in); ASN1Sequence seq = (ASN1Sequence)dIn.readObject(); if (seq.size() > 1 && seq.getObjectAt(0) instanceof ASN1ObjectIdentifier) { if (seq.getObjectAt(0).equals(PKCSObjectIdentifiers.signedData)) { sData = new SignedData(ASN1Sequence.getInstance( (ASN1TaggedObject)seq.getObjectAt(1), true)).getCertificates(); return getCertificate(); } } return new X509V2AttributeCertificate(seq.getEncoded()); }
/** * Render the public key in PKCS#1 v2.1 ASN.1 format. * (see: RFC 3447 section A.1.1) * * @throws TelehashException */ public byte[] getPKCS1V21Encoded() throws TelehashException { if (! (mKey instanceof RSAKeyParameters)) { throw new TelehashException("key is not RSA"); } RSAKeyParameters rsaPublicKey = (RSAKeyParameters)mKey; ASN1EncodableVector v = new ASN1EncodableVector(); v.add(new ASN1Integer(rsaPublicKey.getModulus())); v.add(new ASN1Integer(rsaPublicKey.getExponent())); ASN1Sequence sequence = new DERSequence(v); try { return sequence.getEncoded(); } catch (IOException e) { throw new TelehashException("cannot encode key", e); } }