List of usage examples for org.bouncycastle.asn1 ASN1TaggedObject getInstance
static public ASN1TaggedObject getInstance(Object obj)
From source file:com.guardtime.asn1.CertToken.java
License:Apache License
public Asn1CertToken(ASN1Sequence seq) { Enumeration en = seq.getObjects(); // Required elements version = ASN1Integer.getInstance(en.nextElement()); history = ASN1OctetString.getInstance(en.nextElement()); publishedData = Asn1PublishedData.getInstance(en.nextElement()); pubReference = ASN1Set.getInstance(en.nextElement()); // Optional elements while (en.hasMoreElements()) { ASN1TaggedObject obj = ASN1TaggedObject.getInstance(en.nextElement()); if (obj.getTagNo() == 0 && extensions == null) { extensions = Extensions.getInstance(obj, true); } else {/* ww w.j ava 2 s. com*/ throw new IllegalArgumentException("invalid object in factory: " + obj); } } }
From source file:com.guardtime.asn1.CertTokenRequest.java
License:Apache License
public Asn1CertTokenRequest(ASN1Sequence seq) { Enumeration en = seq.getObjects(); // Required elements version = ASN1Integer.getInstance(en.nextElement()); historyIdentifier = ASN1Integer.getInstance(en.nextElement()); // Optional elements while (en.hasMoreElements()) { ASN1TaggedObject obj = ASN1TaggedObject.getInstance(en.nextElement()); if (obj.getTagNo() == 0 && extensions == null) { extensions = Extensions.getInstance(obj, true); } else {/*from w ww . j a v a 2 s . c o m*/ throw new IllegalArgumentException("invalid object in factory: " + obj); } } }
From source file:com.guardtime.asn1.CertTokenResponse.java
License:Apache License
public Asn1CertTokenResponse(ASN1Sequence seq) { Enumeration en = seq.getObjects(); // Required elements status = PKIStatusInfo.getInstance(en.nextElement()); // Optional elements while (en.hasMoreElements()) { ASN1TaggedObject obj = ASN1TaggedObject.getInstance(en.nextElement()); if (obj.getTagNo() == 0 && certToken == null) { certToken = Asn1CertToken.getInstance(obj, false); } else {/*from w ww . j a va 2 s .c o m*/ throw new IllegalArgumentException("invalid object in factory: " + obj); } } }
From source file:com.guardtime.asn1.SignatureInfo.java
License:Apache License
public Asn1SignatureInfo(ASN1Sequence seq) { Enumeration en = seq.getObjects(); // Required elements signatureAlgorithm = AlgorithmIdentifier.getInstance(en.nextElement()); signatureValue = ASN1OctetString.getInstance(en.nextElement()); // Optional elements while (en.hasMoreElements()) { ASN1TaggedObject obj = ASN1TaggedObject.getInstance(en.nextElement()); if (obj.getTagNo() == 0 && pkiReferences == null) { pkiReferences = ASN1Set.getInstance(obj, false); } else {/*from w ww . j av a2s .c o m*/ throw new IllegalArgumentException("invalid object in factory: " + obj); } } }
From source file:com.guardtime.asn1.TimeSignature.java
License:Apache License
public Asn1TimeSignature(ASN1Sequence seq) { Enumeration en = seq.getObjects(); // Required elements location = ASN1OctetString.getInstance(en.nextElement()); history = ASN1OctetString.getInstance(en.nextElement()); publishedData = Asn1PublishedData.getInstance(en.nextElement()); // Optional elements while (en.hasMoreElements()) { ASN1TaggedObject obj = ASN1TaggedObject.getInstance(en.nextElement()); int tag = obj.getTagNo(); if (tag == 0 && pkSignature == null) { pkSignature = Asn1SignatureInfo.getInstance(obj, false); } else if (tag == 1 && pubReferences == null) { pubReferences = ASN1Set.getInstance(obj, false); } else {/* ww w. j a va2 s. c o m*/ throw new IllegalArgumentException("invalid object in factory: " + obj); } } }
From source file:com.zimbra.cs.service.authenticator.CertUtil.java
License:Open Source License
String getSubjectAltNameOtherNameUPN() { Collection<List<?>> generalNames = null; try {/* w w w . j a v a2 s .c o m*/ generalNames = cert.getSubjectAlternativeNames(); } catch (CertificateParsingException e) { ZimbraLog.account.warn(LOG_PREFIX + "unable to get subject alternative names", e); } if (generalNames == null) { return null; } ASN1InputStream decoder = null; try { // Check that the certificate includes the SubjectAltName extension for (List<?> generalName : generalNames) { Integer tag = (Integer) generalName.get(0); if (GeneralName.otherName == tag.intValue()) { // Value is encoded using ASN.1 decoder = new ASN1InputStream((byte[]) generalName.toArray()[1]); DEREncodable encoded = decoder.readObject(); DERSequence derSeq = (DERSequence) encoded; DERObjectIdentifier typeId = DERObjectIdentifier.getInstance(derSeq.getObjectAt(0)); String oid = typeId.getId(); String value = null; ASN1TaggedObject otherNameValue = ASN1TaggedObject.getInstance(derSeq.getObjectAt(1)); if (OID_UPN.equals(oid)) { ASN1TaggedObject upnValue = ASN1TaggedObject.getInstance(otherNameValue.getObject()); DERUTF8String str = DERUTF8String.getInstance(upnValue.getObject()); value = str.getString(); return value; } } } } catch (IOException e) { ZimbraLog.account.warn(LOG_PREFIX + "unable to process ASN.1 data", e); } finally { ByteUtil.closeStream(decoder); } return null; }
From source file:com.zimbra.cs.service.authenticator.CertUtil.java
License:Open Source License
private void printSubjectAlternativeNames(PrintStream outStream) throws Exception { final String UPN_DISPLAY = "Principal Name"; final String RFC822NAME_DISPLAY = "RFC822 Name"; final String DNSNAME_DISPLAY = "DNS Name"; outStream.format("X509v3 Subject Alternative Name: \n"); ASN1InputStream decoder = null; try {/*from w ww .ja v a 2 s . co m*/ Collection<List<?>> generalNames = cert.getSubjectAlternativeNames(); // Check that the certificate includes the SubjectAltName extension if (generalNames == null) { return; } /* OtherName ::= SEQUENCE { type-id OBJECT IDENTIFIER, value [0] EXPLICIT ANY DEFINED BY type-id } */ for (List<?> generalName : generalNames) { Integer tag = (Integer) generalName.get(0); if (GeneralName.otherName == tag.intValue()) { // Value is encoded using ASN.1 decoder = new ASN1InputStream((byte[]) generalName.toArray()[1]); DEREncodable encoded = decoder.readObject(); DERSequence derSeq = (DERSequence) encoded; DERObjectIdentifier typeId = DERObjectIdentifier.getInstance(derSeq.getObjectAt(0)); String oid = typeId.getId(); String value = null; ASN1TaggedObject otherNameValue = ASN1TaggedObject.getInstance(derSeq.getObjectAt(1)); if (OID_UPN.equals(oid)) { ASN1TaggedObject upnValue = ASN1TaggedObject.getInstance(otherNameValue.getObject()); DERUTF8String str = DERUTF8String.getInstance(upnValue.getObject()); value = str.getString(); } outStream.format(" [%d] %s(%s) = %s\n", tag, oid, UPN_DISPLAY, value); } else if (GeneralName.rfc822Name == tag.intValue()) { String value = (String) generalName.get(1); outStream.format(" [%d] %s = %s\n", tag, RFC822NAME_DISPLAY, value); } else if (GeneralName.dNSName == tag.intValue()) { String value = (String) generalName.get(1); outStream.format(" [%d] %s = %s\n", tag, DNSNAME_DISPLAY, value); } else { outStream.format(" [%d] - not yet supported\n", tag); } } } catch (CertificateParsingException e) { e.printStackTrace(); } finally { ByteUtil.closeStream(decoder); } }
From source file:net.sf.keystore_explorer.crypto.x509.PolicyConstraints.java
License:Open Source License
private PolicyConstraints(ASN1Sequence seq) { if (seq.size() > 2) { throw new IllegalArgumentException("sequence length > 2"); }// w w w . ja v a 2s . c o m for (int i = 0; i < seq.size(); i++) { ASN1TaggedObject taggedObj = ASN1TaggedObject.getInstance(seq.getObjectAt(i)); switch (taggedObj.getTagNo()) { case 0: requireExplicitPolicy = ASN1Integer.getInstance(taggedObj.getObject()).getValue().intValue(); break; case 1: inhibitPolicyMapping = ASN1Integer.getInstance(taggedObj.getObject()).getValue().intValue(); break; default: throw new IllegalArgumentException("wrong tag number"); } } }
From source file:org.cesecore.util.CertTools.java
License:Open Source License
/** * Helper method for the above method/*from w w w. j a v a2 s. c o m*/ * * @param seq the OtherName sequence */ private static String getUPNStringFromSequence(ASN1Sequence seq) { if (seq != null) { // First in sequence is the object identifier, that we must check ASN1ObjectIdentifier id = ASN1ObjectIdentifier.getInstance(seq.getObjectAt(0)); if (id.getId().equals(CertTools.UPN_OBJECTID)) { ASN1TaggedObject oobj = (ASN1TaggedObject) seq.getObjectAt(1); // Due to bug in java cert.getSubjectAltName regarding OtherName, it can be tagged an extra time... ASN1Primitive obj = oobj.getObject(); if (obj instanceof ASN1TaggedObject) { obj = ASN1TaggedObject.getInstance(obj).getObject(); } DERUTF8String str = DERUTF8String.getInstance(obj); return str.getString(); } } return null; }
From source file:org.cesecore.util.CertTools.java
License:Open Source License
/** * (This method intentionally has package level visibility to be able to be invoked from JUnit tests.) * @param seq/* ww w . j a va2 s . c o m*/ * @return The extension values encoded as an permanentIdentifierString */ static String getPermanentIdentifierStringFromSequence(ASN1Sequence seq) { if (seq != null) { // First in sequence is the object identifier, that we must check ASN1ObjectIdentifier id = ASN1ObjectIdentifier.getInstance(seq.getObjectAt(0)); if (id.getId().equals(CertTools.PERMANENTIDENTIFIER_OBJECTID)) { String identifierValue = null; String assigner = null; // Get the PermanentIdentifier sequence ASN1TaggedObject oobj = (ASN1TaggedObject) seq.getObjectAt(1); // Due to bug in java cert.getSubjectAltName regarding OtherName, it can be tagged an extra time... ASN1Primitive obj = oobj.getObject(); if (obj instanceof ASN1TaggedObject) { obj = ASN1TaggedObject.getInstance(obj).getObject(); } ASN1Sequence piSeq = ASN1Sequence.getInstance(obj); Enumeration<?> e = piSeq.getObjects(); if (e.hasMoreElements()) { Object element = e.nextElement(); if (element instanceof DERUTF8String) { identifierValue = ((DERUTF8String) element).getString(); if (e.hasMoreElements()) { element = e.nextElement(); } } if (element instanceof ASN1ObjectIdentifier) { assigner = ((ASN1ObjectIdentifier) element).getId(); } } StringBuilder buff = new StringBuilder(); if (identifierValue != null) { buff.append(escapePermanentIdentifierValue(identifierValue)); } buff.append(PERMANENTIDENTIFIER_SEP); if (assigner != null) { buff.append(assigner); } return buff.toString(); } } return null; }