All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bouncycastle.oer.its.ieee1609dot2.Ieee1609Dot2Content Maven / Gradle / Ivy

Go to download

The Bouncy Castle Java APIs for ASN.1 extension and utility APIs used to support bcpkix and bctls with the BC FIPS provider. The APIs may also be used with other providers although if being used in a FIPS context it is the responsibility of the user to ensure that any other providers used are FIPS certified and used appropriately.

There is a newer version: 2.0.3
Show newest version
package org.bouncycastle.oer.its.ieee1609dot2;

import org.bouncycastle.asn1.ASN1Choice;
import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.asn1.ASN1Object;
import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1TaggedObject;
import org.bouncycastle.asn1.BERTags;
import org.bouncycastle.asn1.DEROctetString;
import org.bouncycastle.asn1.DERTaggedObject;
import org.bouncycastle.util.Arrays;

/**
 * 
 *     Ieee1609Dot2Content ::= CHOICE {
 *         unsecuredData Opaque,
 *         signedData SignedData,
 *         encryptedData EncryptedData,
 *         signedCertificateRequest Opaque,
 *         ...
 *     }
 * 
*/ public class Ieee1609Dot2Content extends ASN1Object implements ASN1Choice { public static final int unsecuredData = 0; public static final int signedData = 1; public static final int encryptedData = 2; public static final int signedCertificateRequest = 3; private final int choice; private final ASN1Encodable ieee1609Dot2Content; public Ieee1609Dot2Content(int choice, ASN1Encodable object) { this.choice = choice; this.ieee1609Dot2Content = object; } public static Ieee1609Dot2Content unsecuredData(Opaque value) { return new Ieee1609Dot2Content(unsecuredData, value); } public static Ieee1609Dot2Content unsecuredData(byte[] value) { return new Ieee1609Dot2Content(unsecuredData, new DEROctetString(Arrays.clone(value))); } public static Ieee1609Dot2Content signedData(SignedData value) { return new Ieee1609Dot2Content(signedData, value); } public static Ieee1609Dot2Content encryptedData(EncryptedData value) { return new Ieee1609Dot2Content(encryptedData, value); } public static Ieee1609Dot2Content signedCertificateRequest(Opaque value) { return new Ieee1609Dot2Content(signedCertificateRequest, value); } public static Ieee1609Dot2Content signedCertificateRequest(byte[] value) { return new Ieee1609Dot2Content(signedCertificateRequest, new DEROctetString(Arrays.clone(value))); } private Ieee1609Dot2Content(ASN1TaggedObject to) { choice = to.getTagNo(); switch (choice) { case unsecuredData: case signedCertificateRequest: ieee1609Dot2Content = Opaque.getInstance(to.getObject()); return; case signedData: ieee1609Dot2Content = SignedData.getInstance(to.getObject()); return; case encryptedData: ieee1609Dot2Content = EncryptedData.getInstance(to.getObject()); return; default: throw new IllegalArgumentException("invalid choice value " + to.getTagNo()); } } public static Ieee1609Dot2Content getInstance(Object src) { if (src instanceof Ieee1609Dot2Content) { return (Ieee1609Dot2Content)src; } if (src != null) { return new Ieee1609Dot2Content(ASN1TaggedObject.getInstance(src)); } return null; } public ASN1Primitive toASN1Primitive() { return new DERTaggedObject(choice, ieee1609Dot2Content); } public int getChoice() { return choice; } public ASN1Encodable getIeee1609Dot2Content() { return ieee1609Dot2Content; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy