org.bouncycastle.asn1.DLExternal Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcprov-jdk15to18 Show documentation
Show all versions of bcprov-jdk15to18 Show documentation
The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for JDK 1.5 to JDK 1.8.
package org.bouncycastle.asn1;
/**
* Class representing the Definite-Length-type External
*/
public class DLExternal
extends ASN1External
{
/**
* Construct a Definite-Length EXTERNAL object, the input encoding vector must have exactly two elements on it.
*
* Acceptable input formats are:
*
* - {@link ASN1ObjectIdentifier} + data {@link DERTaggedObject} (direct reference form)
* - {@link ASN1Integer} + data {@link DERTaggedObject} (indirect reference form)
* - Anything but {@link DERTaggedObject} + data {@link DERTaggedObject} (data value form)
*
*
* @throws IllegalArgumentException if input size is wrong, or input is not an acceptable format
*
* @deprecated Use {@link DLExternal#DLExternal(DLSequence)} instead.
*/
public DLExternal(ASN1EncodableVector vector)
{
this(DLFactory.createSequence(vector));
}
/**
* Construct a Definite-Length EXTERNAL object, the input sequence must have exactly two elements on it.
*
* Acceptable input formats are:
*
* - {@link ASN1ObjectIdentifier} + data {@link DERTaggedObject} (direct reference form)
* - {@link ASN1Integer} + data {@link DERTaggedObject} (indirect reference form)
* - Anything but {@link DERTaggedObject} + data {@link DERTaggedObject} (data value form)
*
*
* @throws IllegalArgumentException if input size is wrong, or input is not an acceptable format
*/
public DLExternal(DLSequence sequence)
{
super(sequence);
}
/**
* Creates a new instance of DERExternal
* See X.690 for more informations about the meaning of these parameters
* @param directReference The direct reference or null
if not set.
* @param indirectReference The indirect reference or null
if not set.
* @param dataValueDescriptor The data value descriptor or null
if not set.
* @param externalData The external data in its encoded form.
*/
public DLExternal(ASN1ObjectIdentifier directReference, ASN1Integer indirectReference,
ASN1Primitive dataValueDescriptor, DERTaggedObject externalData)
{
super(directReference, indirectReference, dataValueDescriptor, externalData);
}
/**
* Creates a new instance of Definite-Length External.
* See X.690 for more informations about the meaning of these parameters
* @param directReference The direct reference or null
if not set.
* @param indirectReference The indirect reference or null
if not set.
* @param dataValueDescriptor The data value descriptor or null
if not set.
* @param encoding The encoding to be used for the external data
* @param externalData The external data
*/
public DLExternal(ASN1ObjectIdentifier directReference, ASN1Integer indirectReference,
ASN1Primitive dataValueDescriptor, int encoding, ASN1Primitive externalData)
{
super(directReference, indirectReference, dataValueDescriptor, encoding, externalData);
}
ASN1Sequence buildSequence()
{
ASN1EncodableVector v = new ASN1EncodableVector(4);
if (directReference != null)
{
v.add(directReference);
}
if (indirectReference != null)
{
v.add(indirectReference);
}
if (dataValueDescriptor != null)
{
v.add(dataValueDescriptor);
}
v.add(new DLTaggedObject(0 == encoding, encoding, externalContent));
return new DLSequence(v);
}
ASN1Primitive toDLObject()
{
return this;
}
}