List of usage examples for org.bouncycastle.asn1 DEROctetString DEROctetString
public DEROctetString(ASN1Encodable obj) throws IOException
From source file:br.gov.frameworkdemoiselle.certificate.signer.pkcs7.bc.attribute.BCMessageDigest.java
License:Open Source License
@Override public ASN1Set getValue() { MessageDigest attribute = (MessageDigest) super.getAttribute(); return new DERSet(new DEROctetString(attribute.getValue())); }
From source file:br.gov.frameworkdemoiselle.certificate.signer.pkcs7.bc.attribute.BCSignaturePolicyIdentifier.java
License:Open Source License
/** * TODO: Implementar a converso do tipo SigPolicyQualifierInfoUserNotice * para BC./*from w w w . j a v a2 s. com*/ * * @return */ @Override public ASN1Set getValue() { if (super.getAttribute() == null) { org.bouncycastle.asn1.esf.SignaturePolicyIdentifier signaturePolicyIdentifier = new org.bouncycastle.asn1.esf.SignaturePolicyIdentifier(); return new DERSet(signaturePolicyIdentifier); } SignaturePolicyId signaturePolicyId = ((SignaturePolicyIdentifier) super.getAttribute()) .getSignaturePolicyId(); if (signaturePolicyId != null) { DERObjectIdentifier objectIdentifier = new DERObjectIdentifier(signaturePolicyId.getSigPolicyId()); OtherHashAlgAndValue otherHashAlgAndValue = new OtherHashAlgAndValue( new AlgorithmIdentifier(signaturePolicyId.getHashAlgorithm()), new DEROctetString(signaturePolicyId.getHash())); SigPolicyQualifiers sigPolicyQualifiers = null; if (signaturePolicyId.getSigPolicyQualifiers() != null && signaturePolicyId.getSigPolicyQualifiers().size() > 0) { List<SigPolicyQualifierInfo> sigPolicyQualifierInfos = new ArrayList<SigPolicyQualifierInfo>(); for (br.gov.frameworkdemoiselle.certificate.signer.pkcs7.attribute.SigPolicyQualifierInfo sigPolicyQualifierInfo : signaturePolicyId .getSigPolicyQualifiers()) { if (sigPolicyQualifierInfo instanceof SigPolicyQualifierInfoURL) { SigPolicyQualifierInfoURL sigPolicyQualifierInfoURL = (SigPolicyQualifierInfoURL) sigPolicyQualifierInfo; DERObjectIdentifier oi = new DERObjectIdentifier(sigPolicyQualifierInfoURL.getOID()); DERIA5String url = new DERIA5String(sigPolicyQualifierInfoURL.getValue()); SigPolicyQualifierInfo bcSigPolicyQualifierInfo = new SigPolicyQualifierInfo(oi, url); sigPolicyQualifierInfos.add(bcSigPolicyQualifierInfo); } } sigPolicyQualifiers = new SigPolicyQualifiers( sigPolicyQualifierInfos.toArray(new SigPolicyQualifierInfo[] {})); } org.bouncycastle.asn1.esf.SignaturePolicyId bcSignaturePolicyId = new org.bouncycastle.asn1.esf.SignaturePolicyId( objectIdentifier, otherHashAlgAndValue, sigPolicyQualifiers); org.bouncycastle.asn1.esf.SignaturePolicyIdentifier signaturePolicyIdentifier = new org.bouncycastle.asn1.esf.SignaturePolicyIdentifier( bcSignaturePolicyId); return new DERSet(signaturePolicyIdentifier); } return new DERSet(new DERNull()); }
From source file:ca.trustpoint.m2m.AuthorityKeyIdentifier.java
License:Apache License
/** * Returns the DER encoding of this instance. * * @return The DER encoding of this instance. * @throws IOException if this instance cannot be encoded. */// ww w. ja v a 2 s . co m public byte[] getEncoded() throws IOException { if (!isValid()) { throw new IOException("AuthKeyId is not valid."); } ASN1EncodableVector values = new ASN1EncodableVector(); if (keyIdentifier != null) { DEROctetString idOctets = new DEROctetString(keyIdentifier); values.add(new DERTaggedObject(false, INDEX_KEY_IDENTIFIER, idOctets)); } if (certificateIssuer != null) { ASN1TaggedObject encodedIssuer = DERTaggedObject.getInstance(certificateIssuer.getEncoded()); values.add(new DERTaggedObject(true, INDEX_AUTH_CERT_ISSUER, encodedIssuer)); } if (certificateSerialNumber != null) { DEROctetString serialOctets = new DEROctetString(certificateSerialNumber.toByteArray()); values.add(new DERTaggedObject(false, INDEX_AUTH_CERT_SERIAL_NUM, serialOctets)); } return (new DERSequence(values).getEncoded()); }
From source file:ca.trustpoint.m2m.EntityNameAttribute.java
License:Apache License
/** * Returns the DER encoding of this instance. * * @return The DER encoding of this instance. * @throws IOException if this instance cannot be encoded. *//*from ww w . jav a 2 s .com*/ public byte[] getEncoded() throws IOException { if (!isValid()) { throw new IOException("Attribute is not valid."); } ASN1Encodable encodedValue; switch (id) { case Country: case DistinguishedNameQualifier: case SerialNumber: encodedValue = new DERPrintableString(value); break; case Organization: case OrganizationalUnit: case StateOrProvince: case Locality: case CommonName: encodedValue = new DERUTF8String(value); break; case DomainComponent: encodedValue = new DERIA5String(value); break; case RegisteredId: encodedValue = new ASN1ObjectIdentifier(value); break; case OctetsName: encodedValue = new DEROctetString(Hex.decode(value)); break; default: throw new IOException("Unknown attribute type ID."); } return new DERTaggedObject(false, id.getIndexId(), encodedValue).getEncoded(); }
From source file:ca.trustpoint.m2m.GeneralName.java
License:Apache License
/** * Returns the DER encoding of this instance. * * @return The DER encoding of this instance. * @throws IOException if this instance cannot be encoded. *///from w w w. j a v a2s . com public byte[] getEncoded() throws IOException { if (!isValid()) { throw new IOException("name id and/or value is invalid."); } ASN1Encodable encodable; switch (id) { case Rfc822Name: case DnsName: case Uri: encodable = new DERIA5String(value); break; case DirectoryName: encodable = DERSequence.getInstance(entity.getEncoded()); break; case IpAddress: encodable = new DEROctetString(InetAddress.getByName(value).getAddress()); break; case RegisteredId: encodable = new ASN1ObjectIdentifier(value); break; default: throw new IOException("invalid name id."); } return new DERTaggedObject(false, id.getIndexId(), encodable).getEncoded(); }
From source file:ca.trustpoint.m2m.KeyAlgorithmDefinition.java
License:Apache License
/** * Returns the DER encoding of the signature parameters. * * @return The DER encoding of the signature parameters. * @throws IOException if the signature parameters cannot be encoded. *//*from www . jav a2 s .c om*/ public byte[] getEncodedParameters() throws IOException { if (parameters == null) { throw new IOException("parameters must be defined."); } return ((new DEROctetString(parameters)).getEncoded()); }
From source file:ca.trustpoint.m2m.KeyUsage.java
License:Apache License
/** * Returns the DER encoding of this instance. * * @return The DER encoding of this instance. *//*from ww w .ja va2 s .c om*/ public byte[] getEncoded() throws IOException { return (new DEROctetString(new byte[] { value }).getEncoded()); }
From source file:ca.trustpoint.m2m.M2mCertificate.java
License:Apache License
/** * Returns the DER encoded to be signed certificate data. This is what would be sent to a CA for * signing, or the data that will be verified with the signature. * * @return The DER encoded to be signed certificate data. * @throws IOException if the encoding fails. *//*from w w w . ja v a 2 s .co m*/ public byte[] getTBSCertificate() throws IOException { if (!isTbsCertificateValid()) { throw new IOException("One or more TBS certificate fields are invalid."); } ASN1EncodableVector elements = new ASN1EncodableVector(); /* * Since the default is v1 (0), we do not need to explicitly add this to the ASN.1 output. * * elements.add( new DERTaggedObject( false, TbsCertificateFields.VERSION.getTagNumber(), new * ASN1Integer(VERSION))); */ elements.add(new DERTaggedObject(false, TbsCertificateFields.SERIAL_NUMBER.getTagNumber(), new DEROctetString(serialNumber))); if (caKeyDefinition != null) { if (caKeyDefinition.getAlgorithm() != null) { elements.add(new DERTaggedObject(false, TbsCertificateFields.CA_ALGORITHM.getTagNumber(), ASN1Primitive.fromByteArray(caKeyDefinition.getEncodedAlgorithm()))); } if (caKeyDefinition.getParameters() != null) { elements.add(new DERTaggedObject(false, TbsCertificateFields.CA_ALGORITHM_PARAMETERS.getTagNumber(), ASN1Primitive.fromByteArray(caKeyDefinition.getEncodedParameters()))); } } if (issuer != null) { elements.add(new DERTaggedObject(false, TbsCertificateFields.ISSUER.getTagNumber(), DERSequence.getInstance(issuer.getEncoded()))); } if (validFrom != null) { elements.add(new DERTaggedObject(false, TbsCertificateFields.VALID_FROM.getTagNumber(), // We record seconds, not milliseconds, hence the / 1000 new DEROctetString(BigInteger.valueOf(validFrom.getTime() / 1000).toByteArray()))); } if (validDuration != null) { elements.add(new DERTaggedObject(false, TbsCertificateFields.VALID_DURATION.getTagNumber(), new DEROctetString(BigInteger.valueOf(validDuration.intValue()).toByteArray()))); } elements.add(new DERTaggedObject(false, TbsCertificateFields.SUBJECT.getTagNumber(), DERSequence.getInstance(subject.getEncoded()))); if (publicKeyDefinition != null) { if (publicKeyDefinition.getAlgorithm() != null) { elements.add(new DERTaggedObject(false, TbsCertificateFields.PUBLIC_KEY_ALGORITHM.getTagNumber(), ASN1Primitive.fromByteArray(publicKeyDefinition.getEncodedAlgorithm()))); } if (publicKeyDefinition.getParameters() != null) { elements.add(new DERTaggedObject(false, TbsCertificateFields.PUBLIC_KEY_ALGORITHM_PARAMETERS.getTagNumber(), ASN1Primitive.fromByteArray(publicKeyDefinition.getEncodedParameters()))); } } if (publicKey != null) { byte[] publicKeyBytes = KeyConversionUtils.convertEcPublicKeyToRawBytes(publicKey, isPublicKeyCompressed); elements.add(new DERTaggedObject(false, TbsCertificateFields.PUBLIC_KEY.getTagNumber(), new DEROctetString(publicKeyBytes))); } if (authorityKeyIdentifier != null) { elements.add(new DERTaggedObject(false, TbsCertificateFields.AUTHORITY_KEY_ID.getTagNumber(), ASN1Primitive.fromByteArray(authorityKeyIdentifier.getEncoded()))); } if (subjectKeyIdentifier != null) { elements.add(new DERTaggedObject(false, TbsCertificateFields.SUBJECT_KEY_ID.getTagNumber(), new DEROctetString(subjectKeyIdentifier))); } if (keyUsage != null) { elements.add(new DERTaggedObject(false, TbsCertificateFields.KEY_USAGE.getTagNumber(), ASN1Primitive.fromByteArray(keyUsage.getEncoded()))); } if (basicConstraints != null) { elements.add(new DERTaggedObject(false, TbsCertificateFields.BASIC_CONSTRAINTS.getTagNumber(), new ASN1Integer(basicConstraints.intValue()))); } if (certificatePolicy != null) { elements.add(new DERTaggedObject(false, TbsCertificateFields.CERTIFICATE_POLICY.getTagNumber(), new ASN1ObjectIdentifier(certificatePolicy))); } if (subjectAlternativeName != null) { elements.add(new DERTaggedObject(true, TbsCertificateFields.SUBJECT_ALTERNATE_NAME.getTagNumber(), DERTaggedObject.getInstance(subjectAlternativeName.getEncoded()))); } if (issuerAlternativeName != null) { elements.add(new DERTaggedObject(true, TbsCertificateFields.ISSUER_ALTERNATE_NAME.getTagNumber(), DERTaggedObject.getInstance(issuerAlternativeName.getEncoded()))); } if (extendedKeyUsage != null) { elements.add(new DERTaggedObject(false, TbsCertificateFields.EXTENDED_KEY_USAGE.getTagNumber(), new ASN1ObjectIdentifier(extendedKeyUsage))); } if (authenticationInfoAccessOcsp != null) { elements.add( new DERTaggedObject(false, TbsCertificateFields.AUTHENTICATION_INFO_ACCESS_OCSP.getTagNumber(), new DERIA5String(authenticationInfoAccessOcsp.toString()))); } if (crlDistributionPointUri != null) { elements.add(new DERTaggedObject(false, TbsCertificateFields.CRL_DISTRIBUTION_POINT_URI.getTagNumber(), new DERIA5String(crlDistributionPointUri.toString()))); } if (!extensions.isEmpty()) { ASN1EncodableVector toBeEncodedExtensions = new ASN1EncodableVector(); for (Extension extension : extensions) { toBeEncodedExtensions.add(new DERSequence(extension.getEncoded())); } elements.add(new DERTaggedObject(false, TbsCertificateFields.EXTENSIONS.getTagNumber(), new DERSequence(toBeEncodedExtensions))); } return ((new DERSequence(elements)).getEncoded()); }
From source file:ca.trustpoint.m2m.M2mCertificate.java
License:Apache License
@Override public byte[] getEncoded() throws CertificateEncodingException { ASN1EncodableVector elements = new ASN1EncodableVector(); if (!isTbsCertificateValid()) { throw new CertificateEncodingException("TBS certificate is invalid."); } else if ((caCalcValue == null) || (caCalcValue.length == 0)) { throw new CertificateEncodingException("Signature or reconstruction value must be present."); }//w ww . j a v a 2 s .com try { elements.add(new DERTaggedObject(false, CertificateFields.TBS_CERTIFICATE.getTagNumber(), DERSequence.fromByteArray(getTBSCertificate()))); } catch (IOException ex) { throw new CertificateEncodingException("Could not encode TBS certificate fields.", ex); } elements.add(new DERTaggedObject(false, CertificateFields.CA_CALC_VALUE.getTagNumber(), new DEROctetString(caCalcValue))); DERApplicationSpecific certificate = null; try { certificate = new DERApplicationSpecific(false, APPLICATION_TAG_NUMBER, new DERSequence(elements)); } catch (IOException ex) { throw new CertificateEncodingException("Could not construct ASN.1 certificate.", ex); } byte[] encodedBytes = null; try { encodedBytes = certificate.getEncoded(); } catch (IOException ex) { throw new CertificateEncodingException("Could not encode certificate.", ex); } return encodedBytes; }
From source file:ch.bfh.unicert.certimport.CertificateHelper.java
License:GNU General Public License
/** * Converts a string to a DER encoded octet string * @param string the string to convert//from www. j a v a 2 s . co m * @return a DER encoded octet string */ public static DEROctetString stringToDER(String string) { return new DEROctetString(string.getBytes()); }