Enumeration<?> objects = asn1Seq.getObjects(); while (objects.hasMoreElements()) ASN1ObjectIdentifier oid = (ASN1ObjectIdentifier) obj.getObjectAt(0); DERTaggedObject location = (DERTaggedObject) obj.getObjectAt(1); && location.getTagNo() == GeneralName.uniformResourceIdentifier) DEROctetString url = (DEROctetString) location.getObject(); certInfo.setOcspUrl(new String(url.getOctets())); DEROctetString uri = (DEROctetString) location.getObject(); certInfo.setIssuerUrl(new String(uri.getOctets()));
final ASN1EncodableVector subjectAlternativeNames = new ASN1EncodableVector(); final ASN1ObjectIdentifier typeId = (ASN1ObjectIdentifier) otherNameSeq.getObjectAt( 0 ); final ASN1TaggedObject taggedValue = (ASN1TaggedObject) otherNameSeq.getObjectAt( 1 ); subjectAlternativeNames.add( new DERTaggedObject( false, GeneralName.otherName, new DERSequence( new ASN1Encodable[] { typeId, case 2: subjectAlternativeNames.add( new GeneralName( GeneralName.dNSName, (String) value ) ); break; case 6: new DERSequence( subjectAlternativeNames ) );
ResponderID ocspResponderId = respId.toASN1Primitive(); DERTaggedObject derTaggedObject = (DERTaggedObject)ocspResponderId.toASN1Primitive(); if (2 == derTaggedObject.getTagNo()) { ASN1OctetString keyHashOctetString = (ASN1OctetString)derTaggedObject.getObject(); byte key[] = keyHashOctetString.getOctets(); responderId.setByKey(key); } else { X500Name name = X500Name.getInstance(derTaggedObject.getObject()); String nameStr = name.toString(); responderId.setByName(nameStr);
@Override public ASN1Primitive toASN1Primitive() { DERTaggedObject parametersEncodable = parameters() .map(DEROctetString::new) .map(e -> new DERTaggedObject(PARAMETERS, e)) .orElseGet(null); DERTaggedObject publicKeyEncodable = publicKey() .map(DERBitString::new) .map(e -> new DERTaggedObject(PUBLIC_KEY, e)) .orElseGet(null); ASN1EncodableVector vector = DER.vector( new ASN1Integer(version), new DEROctetString(privateKey), parametersEncodable, publicKeyEncodable); return new DERSequence(vector); }
if (certificates != null) { final byte[] certificatesBytes = new DERTaggedObject(false, 0, new DERSequence(certificates.toArray())).getEncoded(); if (LOG.isTraceEnabled()) { LOG.trace("Certificates: {}", DSSUtils.toHex(certificatesBytes)); final ASN1Sequence filteredUnauthenticatedAttributes = filterUnauthenticatedAttributes(unauthenticatedAttributes, timestampToken); final ASN1Sequence asn1Object = getSignerInfoEncoded(signerInfo, filteredUnauthenticatedAttributes); for (int ii = 0; ii < asn1Object.size(); ii++) { final byte[] signerInfoBytes = DSSASN1Utils.getDEREncoded(asn1Object.getObjectAt(ii).toASN1Primitive()); signerByteArrayOutputStream.write(signerInfoBytes);
@Override public void parse(ASN1Primitive derObject) { ASN1Sequence derSequence = ASN1Object.getDERSequence(derObject); this.identifier = new CommitmentTypeIdentifier(); this.identifier.parse(derSequence.getObjectAt(0).toASN1Primitive()); int total = derSequence.size(); if (total > 0) { for (int i = 0; i < total; i++) { ASN1Primitive object = derSequence.getObjectAt(i).toASN1Primitive(); if (object instanceof DERTaggedObject) { DERTaggedObject derTaggedObject = (DERTaggedObject) object; TAG tag = TAG.getTag(derTaggedObject.getTagNo()); switch (tag) { case fieldOfApplication: this.fieldOfApplication = new FieldOfApplication(); this.fieldOfApplication.parse(object); break; case semantics: break; default: break; } } } } }
@Override public Set<PolicyConstraint> getPolicyConstraints( X509Certificate cert ) { try { byte[] value = cert.getExtensionValue( X509Extensions.PolicyConstraints.getId() ); if ( value == null ) { return Collections.emptySet(); } ASN1Sequence constraintsSequence = ( ASN1Sequence ) ASN1Object.fromByteArray( value ); Set<PolicyConstraint> constraints = new LinkedHashSet<PolicyConstraint>(); for ( int idx = 0; idx < constraintsSequence.size(); idx++ ) { DERTaggedObject asn1Constraint = ( DERTaggedObject ) constraintsSequence.getObjectAt( idx ); DERInteger skipCerts = new DERInteger( ( ( DEROctetString ) asn1Constraint.getObject() ).getOctets() ); PolicyConstraint constraint = new PolicyConstraint(); switch ( asn1Constraint.getTagNo() ) { case 0: constraint.setRequireExplicitPolicy( skipCerts.getValue().intValue() ); break; case 1: constraint.setInhibitPolicyMapping( skipCerts.getValue().intValue() ); } constraints.add( constraint ); } return constraints; } catch ( IOException ex ) { throw new CryptoFailure( "Unable to extract PolicyConstraints from X509Certificate extensions", ex ); } }
public RequestedCertificate(int type, byte[] certificateOctets) { this(new DERTaggedObject(type, new DEROctetString(certificateOctets))); }
private CertBag( ASN1Sequence seq) { this.certId = (ASN1ObjectIdentifier)seq.getObjectAt(0); this.certValue = ((DERTaggedObject)seq.getObjectAt(1)).getObject(); }
private void addOptional(ASN1EncodableVector v, int tagNo, ASN1Encodable obj) { if (obj != null) { v.add(new DERTaggedObject(true, tagNo, obj)); } } }
Enumeration<?> objects = asn1Seq.getObjects(); derTagged = (DERTaggedObject) derTagged.getObject(); derTagged = (DERTaggedObject) derTagged.getObject(); if (!(derTagged.getObject() instanceof DEROctetString)) DEROctetString uri = (DEROctetString) derTagged.getObject(); String url = new String(uri.getOctets());
@Override public ASN1Primitive toASN1Primitive() { DERTaggedObject cont0Encodable = cont0() .map(DEROctetString::new) .map(e -> new DERTaggedObject(CONT0, e)) .orElseGet(null); ASN1EncodableVector vector = DER.vector( new ASN1Integer(x), DER.toSet(encryptedKeySet), cont0Encodable); return new DERSequence(vector); }
byte[] bytes = ((DEROctetString) primitive).getOctets(); for (int i=0; i < ds.size() ; i++ ) { byte[] b = t.getEncoded(); int length = b[1]; if( t.getTagNo() == 6 ) { // Several buff.append( new String(b, 2, length) ); buff.append( " | "); } else if( t.getTagNo() == 2 ) { // SubjectAlternativeName buff.append( new String(b, 2, length) ); buff.append( " | "); } else if( t.getTagNo() == 1 ) { // NameContraints ASN1Primitive p = t.getObject(); walkASN1Sequence( p, buff ); } else if( t.getTagNo() == 0 ) { // CRLDistributionPoints ASN1Primitive p = t.getObject(); walkASN1Sequence( p, buff ); } else if( t.getTagNo() == 4 ) { // AuthorityKeyIdentifier ASN1Primitive p = t.getObject(); walkASN1Sequence( p, buff ); } else { buff2.append( "type="+t.getTagNo()+" "); String hex = CipherSuiteUtil.byteArrayToHex(b); buff2.append( hex );
public OtherInfo( ASN1Sequence seq) { Enumeration e = seq.getObjects(); keyInfo = new KeySpecificInfo((ASN1Sequence)e.nextElement()); while (e.hasMoreElements()) { DERTaggedObject o = (DERTaggedObject)e.nextElement(); if (o.getTagNo() == 0) { partyAInfo = (ASN1OctetString)o.getObject(); } else if (o.getTagNo() == 2) { suppPubInfo = (ASN1OctetString)o.getObject(); } } }
@Override public ASN1Primitive toASN1Primitive() { DERTaggedObject signatureInfoEncodable = signatureInfo .map(e -> new DERTaggedObject(SIGNATURE_INFO, e)) .orElseGet(null); DERTaggedObject signatureEncodable = signature .map(e -> new DERTaggedObject(SIGNATURE, e)) .orElseGet(null); ASN1EncodableVector vector = DER.vector(signatureInfoEncodable, signatureEncodable); return new DERSequence(vector); }
/** * * * @return the authority key identifier of a certificate * */ public String getAuthorityKeyIdentifier() { // TODO - Precisa validar este metodo com a RFC try { DLSequence sequence = (DLSequence) getExtensionValue(Extension.authorityKeyIdentifier.getId()); if (sequence == null || sequence.size() == 0) { return null; } DERTaggedObject taggedObject = (DERTaggedObject) sequence.getObjectAt(0); DEROctetString oct = (DEROctetString) taggedObject.getObject(); return toString(oct.getOctets()); } catch (Exception error) { logger.info(error.getMessage()); return null; } }
public DeclarationOfMajority(int notYoungerThan) { declaration = new DERTaggedObject(false, 0, new ASN1Integer(notYoungerThan)); }
void encode(ASN1OutputStream out) throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); if (directReference != null) { baos.write(directReference.getEncoded(ASN1Encoding.DER)); } if (indirectReference != null) { baos.write(indirectReference.getEncoded(ASN1Encoding.DER)); } if (dataValueDescriptor != null) { baos.write(dataValueDescriptor.getEncoded(ASN1Encoding.DER)); } DERTaggedObject obj = new DERTaggedObject(true, encoding, externalContent); baos.write(obj.getEncoded(ASN1Encoding.DER)); out.writeEncoded(BERTags.CONSTRUCTED, BERTags.EXTERNAL, baos.toByteArray()); }
protected AuthorityKeyIdentifier( ASN1Sequence seq) { Enumeration e = seq.getObjects(); while (e.hasMoreElements()) { ASN1TaggedObject o = DERTaggedObject.getInstance(e.nextElement()); switch (o.getTagNo()) { case 0: this.keyidentifier = ASN1OctetString.getInstance(o, false); break; case 1: this.certissuer = GeneralNames.getInstance(o, false); break; case 2: this.certserno = ASN1Integer.getInstance(o, false); break; default: throw new IllegalArgumentException("illegal tag"); } } }
/** * Reads a ASN.1 encoded EC private key according the structure defined in * sections C.4 and C.2 of SEC 1: Elliptic Curve Cryptography, * www.secg.org/collateral/sec1_final.pdf. * * @param seq ASN.1 encoded sequence of EC private key parameters. * * @return Constructed EC key parameter specification. */ public static ECPrivateKeySpec readEncodedPrivateKey(final ASN1Sequence seq) { final BigInteger s = DERInteger.getInstance(seq.getObjectAt(1)).getValue(); final ASN1TaggedObject params = DERTaggedObject.getInstance( seq.getObjectAt(2)); return new ECPrivateKeySpec( s, readEncodedParams((ASN1Sequence) params.getObject())); }