/** * Decodes a DER sequence of PBE parameters into an instance of this class. * * @param params PBE parameters as a DER sequence. * * @return Equivalent instance of {@link PBEParameter}. */ public static PBEParameter decode(final DERSequence params) { return new PBEParameter( DERHelper.asOctets(params.getObjectAt(0)), DERHelper.asInt(params.getObjectAt(1))); }
/** * Decodes a DER sequence of PBKDF2 parameters into an instance of this class. * * @param params PBKDF2 parameters as a DER sequence. * * @return Equivalent instance of {@link PBKDF2Parameters}. */ public static PBKDF2Parameters decode(final DERSequence params) { final DERSequence kdfSeq = (DERSequence) params.getObjectAt(1); final PBKDF2Parameters instance = new PBKDF2Parameters( DERHelper.asOctets(kdfSeq.getObjectAt(0)), DERHelper.asInt(kdfSeq.getObjectAt(1))); if (kdfSeq.size() > 2) { instance.setLength(DERHelper.asInt(kdfSeq.getObjectAt(2)) * 8); } return instance; }
public enum CertPathEncoding { PKCS7, PkiPath }
@Override public void parse(ASN1Primitive derObject) { DERSequence derSequence = (DERSequence) derObject; int total = derSequence.size(); for (int i = 0; i < total; i++) { ObjectIdentifier objectIdentifier = new ObjectIdentifier(); objectIdentifier.parse(derSequence.getObjectAt(i).toASN1Primitive()); if (this.objectIdentifiers == null) { this.objectIdentifiers = new ArrayList<ObjectIdentifier>(); } this.objectIdentifiers.add(objectIdentifier); } }
@Override public void parse(ASN1Primitive derObject) { DERTaggedObject derTaggedObject = (DERTaggedObject) derObject; DERSequence derSequence = (DERSequence) derTaggedObject.getObject(); int total = derSequence.size(); for (int i = 0; i < total; i++) { ObjectIdentifier objectIdentifier = new ObjectIdentifier(); objectIdentifier.parse(derSequence.getObjectAt(i).toASN1Primitive()); if (this.pathLenConstraints == null) { this.pathLenConstraints = new ArrayList<ObjectIdentifier>(); } this.pathLenConstraints.add(objectIdentifier); } }
DERObjectIdentifier componentId; for (int i = 0; i < ((DERSequence) parent).size(); i++) { dnComponent = ((DERSequence) parent).getObjectAt(i).getDERObject(); if (!(dnComponent instanceof DERSet)) { log.debug("No DN components."); grandChild = (DERSequence) ((DERSet) dnComponent).getObjectAt(j).getDERObject(); if (grandChild.getObjectAt(0) != null && grandChild.getObjectAt(0).getDERObject() instanceof DERObjectIdentifier) { componentId = (DERObjectIdentifier) grandChild.getObjectAt(0).getDERObject(); if (grandChild.getObjectAt(1) != null && grandChild.getObjectAt(1).getDERObject() instanceof DERString) { cn = ((DERString) grandChild.getObjectAt(1).getDERObject()).getString(); commonNames.add(cn);
PolicyInformation policyInformation = new PolicyInformation((ASN1Sequence) seq.getObjectAt(pos));
DERObjectIdentifier componentId; for (int i = 0; i < ((DERSequence) parent).size(); i++) { dnComponent = ((DERSequence) parent).getObjectAt(i).getDERObject(); if (!(dnComponent instanceof DERSet)) { log.debug("No DN components."); grandChild = (DERSequence) ((DERSet) dnComponent).getObjectAt(j).getDERObject(); if (grandChild.getObjectAt(0) != null && grandChild.getObjectAt(0).getDERObject() instanceof DERObjectIdentifier) { componentId = (DERObjectIdentifier) grandChild.getObjectAt(0).getDERObject(); if (grandChild.getObjectAt(1) != null && grandChild.getObjectAt(1).getDERObject() instanceof DERString) { cn = ((DERString) grandChild.getObjectAt(1).getDERObject()).getString(); commonNames.add(cn);
((DERObjectIdentifier) seq.getObjectAt(0)).getId()); final DEREncodable parms = seq.getObjectAt(1); DERSequence pSeq; switch (algorithm) { idx = 1; effectiveBits = RC2.getEffectiveBits( DERHelper.asInt(pSeq.getObjectAt(0))); algParamSpec = new RC2ParameterSpec( effectiveBits, DERHelper.asOctets(pSeq.getObjectAt(idx))); pSeq = (DERSequence) parms; final int version = DERHelper.asInt(pSeq.getObjectAt(0)); final int rounds = DERHelper.asInt(pSeq.getObjectAt(1)); final int blkSize = DERHelper.asInt(pSeq.getObjectAt(2)); if (pSeq.size() > 3) { algParamSpec = new RC5ParameterSpec( rounds, blkSize, DERHelper.asOctets(pSeq.getObjectAt(3))); } else { algParamSpec = new RC5ParameterSpec(version, rounds, blkSize);
if (value instanceof DERSequence) { DERSequence derSequence = (DERSequence) value; DERObjectIdentifier derObjectIdentifier = (DERObjectIdentifier) derSequence.getObjectAt(0); DERTaggedObject derTaggedObject = (DERTaggedObject) derSequence.getObjectAt(1); DERObject derObject = derTaggedObject.getObject();
if (value instanceof DERSequence) { DERSequence derSequence = (DERSequence) value; DERObjectIdentifier derObjectIdentifier = (DERObjectIdentifier) derSequence.getObjectAt(0); DERTaggedObject derTaggedObject = (DERTaggedObject) derSequence.getObjectAt(1); DERObject derObject = derTaggedObject.getObject();
private String getIdentifyFromBytes(byte[] itemBytes) { try (ASN1InputStream decoder = new ASN1InputStream(itemBytes)) { ASN1Encodable encoded = decoder.readObject(); encoded = ((DERSequence) encoded).getObjectAt(1); encoded = ((DERTaggedObject) encoded).getObject(); encoded = ((DERTaggedObject) encoded).getObject(); return ((DERUTF8String) encoded).getString(); } catch (IOException e) { return ""; } } }
public static CertificateRequest loadCertificateRequest(Reader reader) throws IOException { try (PEMReader pr = new PEMReader(reader)) { CertificationRequest req = (CertificationRequest) pr.readObject(); // get the CN String cn = (String) ((X509Name) req.getCertificationRequestInfo().getSubject()).getValues(new DERObjectIdentifier("2.5.4.3")).get(0); // build the key KeyFactory kf = KeyFactory.getInstance("RSA"); PublicKey key = kf.generatePublic(new RSAPublicKeySpec( ((ASN1Integer)((DERSequence) req.getCertificationRequestInfo().getSubjectPublicKeyInfo().getPublicKey()).getObjectAt(0)).getValue(), ((ASN1Integer)((DERSequence) req.getCertificationRequestInfo().getSubjectPublicKeyInfo().getPublicKey()).getObjectAt(1)).getValue() )); return new CertificateRequest(cn, key); } catch (NoSuchAlgorithmException | InvalidKeySpecException e) { throw new IOException("Failed to parse certificate request", e); } }
DERSequence sequence2 = (DERSequence) object; for (int i = 0; i < sequence2.size(); i++) { ASN1Encodable obj = sequence2.getObjectAt(i); if (obj instanceof DERSet) { DERSet set = (DERSet) obj; DERSequence sequence3 = (DERSequence) object2; ObjectIdentifier objectIdendifier = new ObjectIdentifier(); objectIdendifier.parse(sequence3.getObjectAt(0).toASN1Primitive()); String name = null; ASN1Encodable object3 = sequence3.getObjectAt(1); if (object3 instanceof DERPrintableString) { name = ((DERPrintableString) object3).getString();
continue; DEREncodable idObj = extensionRequest.getObjectAt(0); DEREncodable contentObj = extensionRequest.getObjectAt(1); if (!(idObj instanceof ASN1ObjectIdentifier && contentObj instanceof DERSet)) { continue; DEREncodable extensionObj = extensions.getObjectAt(k); if (!(extensionObj instanceof DERSequence)) { continue; continue; DEREncodable extensionIdObj = extension.getObjectAt(0); DEREncodable extensionContentObj = extension.getObjectAt(1); if (!(extensionIdObj instanceof ASN1ObjectIdentifier)) { continue; DERSequence names = (DERSequence) namesObj; for (int m = 0; m < names.size(); m++) { DEREncodable nameObj = names.getObjectAt(m); if (nameObj instanceof DERTaggedObject) { DERTaggedObject name = (DERTaggedObject) nameObj;
/** * Returns the AuthorityKeyIdentifier extension value on String format.<br> * Otherwise, returns <b>null</b>.<br> * * @return String * @throws IOException */ public String getAuthorityKeyIdentifier() throws IOException { // TODO - Precisa validar este metodo com a RFC DERSequence seq = (DERSequence) getExtensionValue(X509Extensions.AuthorityKeyIdentifier.getId()); if (seq == null || seq.size() == 0) { return null; } DERTaggedObject tag = (DERTaggedObject) seq.getObjectAt(0); DEROctetString oct = (DEROctetString) DEROctetString.getInstance(tag); return toString(oct.getOctets()); }
/** * Returns a List of URL for Certificate Revocation List. Must have on or * more<br> * Otherwise, returns <b>null</b>.<br> * * @return String * @throws IOException */ public List<String> getCRLDistributionPoint() throws IOException { List<String> lcrS = new ArrayList<String>(); DERObject derObj = getExtensionValue(X509Extensions.CRLDistributionPoints.getId()); if (derObj == null) { return null; } CRLDistPoint crlDistPoint = CRLDistPoint.getInstance(derObj); DistributionPoint[] dp = crlDistPoint.getDistributionPoints(); for (int i = 0; i < dp.length; i++) { DERSequence seq = (DERSequence) new ASN1InputStream(dp[i].getDistributionPoint().getName().getDEREncoded()).readObject(); DERTaggedObject tag = (DERTaggedObject) seq.getObjectAt(0); try { ASN1OctetString oct = DEROctetString.getInstance(tag); lcrS.add(new String(oct.getOctets())); } catch (Exception e) { // Não é um objeto com informação de DistributionPoint } } return lcrS; }
ASN1InputStream is = new ASN1InputStream(data); DERSequence sequence = (DERSequence) is.readObject(); DERObjectIdentifier objectIdentifier = (DERObjectIdentifier) sequence.getObjectAt(0); DERTaggedObject tag = (DERTaggedObject) sequence.getObjectAt(1); DEROctetString octetString = null; DERPrintableString printableString = null;
for (Enumeration<DERSequence> iterator = valueAttribute.getObjects(); iterator.hasMoreElements();) { DERSequence sequence = iterator.nextElement(); DERObjectIdentifier policyIdentifier = (DERObjectIdentifier) sequence.getObjectAt(0); String policyOID = policyIdentifier.getId(); SignaturePolicy policy = SignaturePolicyFactory.getInstance().factory(policyOID);
(DERSequence) pbeSeq.getObjectAt(0)); final PBES2CipherGenerator cipherGen = new PBES2CipherGenerator( (DERSequence) pbeSeq.getObjectAt(1)); if (kdfParms.getLength() == 0) { kdfParms.setLength(cipherGen.getKeySize() / 8);