
org.spongycastle.asn1.cryptopro.Gost2814789KeyWrapParameters Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of core Show documentation
Show all versions of core Show documentation
Spongy Castle is a package-rename (org.bouncycastle.* to org.spongycastle.*) of Bouncy Castle
intended for the Android platform. Android unfortunately ships with a stripped-down version of
Bouncy Castle, which prevents easy upgrades - Spongy Castle overcomes this and provides a full,
up-to-date version of the Bouncy Castle cryptographic libs.
The newest version!
package org.spongycastle.asn1.cryptopro;
import org.spongycastle.asn1.ASN1EncodableVector;
import org.spongycastle.asn1.ASN1Object;
import org.spongycastle.asn1.ASN1ObjectIdentifier;
import org.spongycastle.asn1.ASN1OctetString;
import org.spongycastle.asn1.ASN1Primitive;
import org.spongycastle.asn1.ASN1Sequence;
import org.spongycastle.asn1.DEROctetString;
import org.spongycastle.asn1.DERSequence;
import org.spongycastle.util.Arrays;
public class Gost2814789KeyWrapParameters
extends ASN1Object
{
private final ASN1ObjectIdentifier encryptionParamSet;
private final byte[] ukm;
private Gost2814789KeyWrapParameters(ASN1Sequence seq)
{
if (seq.size() == 2)
{
this.encryptionParamSet = ASN1ObjectIdentifier.getInstance(seq.getObjectAt(0));
this.ukm = ASN1OctetString.getInstance(seq.getObjectAt(1)).getOctets();
}
else if (seq.size() == 1)
{
this.encryptionParamSet = ASN1ObjectIdentifier.getInstance(seq.getObjectAt(0));
this.ukm = null;
}
else
{
throw new IllegalArgumentException("unknown sequence length: " + seq.size());
}
}
public static Gost2814789KeyWrapParameters getInstance(
Object obj)
{
if (obj instanceof Gost2814789KeyWrapParameters)
{
return (Gost2814789KeyWrapParameters)obj;
}
if (obj != null)
{
return new Gost2814789KeyWrapParameters(ASN1Sequence.getInstance(obj));
}
return null;
}
public Gost2814789KeyWrapParameters(ASN1ObjectIdentifier encryptionParamSet)
{
this(encryptionParamSet, null);
}
public Gost2814789KeyWrapParameters(ASN1ObjectIdentifier encryptionParamSet, byte[] ukm)
{
this.encryptionParamSet = encryptionParamSet;
this.ukm = Arrays.clone(ukm);
}
public ASN1ObjectIdentifier getEncryptionParamSet()
{
return encryptionParamSet;
}
public byte[] getUkm()
{
return ukm;
}
public ASN1Primitive toASN1Primitive()
{
ASN1EncodableVector v = new ASN1EncodableVector();
v.add(encryptionParamSet);
if (ukm != null)
{
v.add(new DEROctetString(ukm));
}
return new DERSequence(v);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy