org.bouncycastle.oer.its.ItsUtils Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of polaris-all Show documentation
Show all versions of polaris-all Show documentation
All in one project for polaris-java
package org.bouncycastle.oer.its;
import java.lang.reflect.Method;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.DERSequence;
import org.bouncycastle.util.Arrays;
public class ItsUtils
{
/**
*
* OCTET STRING (SIZE(n))
*
*/
public static byte[] octetStringFixed(byte[] octets, int n)
{
if (octets.length != n)
{
throw new IllegalArgumentException("octet string out of range");
}
return octets;
}
/**
*
* OCTET STRING (SIZE(1..32))
*
*/
public static byte[] octetStringFixed(byte[] octets)
{
if (octets.length < 1 || octets.length > 32)
{
throw new IllegalArgumentException("octet string out of range");
}
return Arrays.clone(octets);
}
public static ASN1Sequence toSequence(List objs)
{
return new DERSequence((ASN1Encodable[])objs.toArray(new ASN1Encodable[0]));
}
public static ASN1Sequence toSequence(ASN1Encodable... objs)
{
return new DERSequence(objs);
}
@Deprecated
public static List fillList(final Class type, final ASN1Sequence sequence)
{
return AccessController.doPrivileged(new PrivilegedAction>()
{
public List run()
{
try
{
List accumulator = new ArrayList();
for (Iterator it = sequence.iterator(); it.hasNext(); )
{
Method m = type.getMethod("getInstance", Object.class);
accumulator.add(type.cast(m.invoke(null, it.next())));
}
return accumulator;
}
catch (Exception ex)
{
throw new IllegalStateException("could not invoke getInstance on type " + ex.getMessage(), ex);
}
}
});
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy