
org.spongycastle.asn1.smime.SMIMECapability 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.
package org.spongycastle.asn1.smime;
import org.spongycastle.asn1.ASN1Encodable;
import org.spongycastle.asn1.ASN1EncodableVector;
import org.spongycastle.asn1.ASN1Object;
import org.spongycastle.asn1.ASN1ObjectIdentifier;
import org.spongycastle.asn1.ASN1Primitive;
import org.spongycastle.asn1.ASN1Sequence;
import org.spongycastle.asn1.DERSequence;
import org.spongycastle.asn1.nist.NISTObjectIdentifiers;
import org.spongycastle.asn1.pkcs.PKCSObjectIdentifiers;
public class SMIMECapability
extends ASN1Object
{
/**
* general preferences
*/
public static final ASN1ObjectIdentifier preferSignedData = PKCSObjectIdentifiers.preferSignedData;
public static final ASN1ObjectIdentifier canNotDecryptAny = PKCSObjectIdentifiers.canNotDecryptAny;
public static final ASN1ObjectIdentifier sMIMECapabilitiesVersions = PKCSObjectIdentifiers.sMIMECapabilitiesVersions;
/**
* encryption algorithms preferences
*/
public static final ASN1ObjectIdentifier dES_CBC = new ASN1ObjectIdentifier("1.3.14.3.2.7");
public static final ASN1ObjectIdentifier dES_EDE3_CBC = PKCSObjectIdentifiers.des_EDE3_CBC;
public static final ASN1ObjectIdentifier rC2_CBC = PKCSObjectIdentifiers.RC2_CBC;
public static final ASN1ObjectIdentifier aES128_CBC = NISTObjectIdentifiers.id_aes128_CBC;
public static final ASN1ObjectIdentifier aES192_CBC = NISTObjectIdentifiers.id_aes192_CBC;
public static final ASN1ObjectIdentifier aES256_CBC = NISTObjectIdentifiers.id_aes256_CBC;
private ASN1ObjectIdentifier capabilityID;
private ASN1Encodable parameters;
public SMIMECapability(
ASN1Sequence seq)
{
capabilityID = (ASN1ObjectIdentifier)seq.getObjectAt(0);
if (seq.size() > 1)
{
parameters = (ASN1Primitive)seq.getObjectAt(1);
}
}
public SMIMECapability(
ASN1ObjectIdentifier capabilityID,
ASN1Encodable parameters)
{
this.capabilityID = capabilityID;
this.parameters = parameters;
}
public static SMIMECapability getInstance(
Object obj)
{
if (obj == null || obj instanceof SMIMECapability)
{
return (SMIMECapability)obj;
}
if (obj instanceof ASN1Sequence)
{
return new SMIMECapability((ASN1Sequence)obj);
}
throw new IllegalArgumentException("Invalid SMIMECapability");
}
public ASN1ObjectIdentifier getCapabilityID()
{
return capabilityID;
}
public ASN1Encodable getParameters()
{
return parameters;
}
/**
* Produce an object suitable for an ASN1OutputStream.
*
* SMIMECapability ::= SEQUENCE {
* capabilityID OBJECT IDENTIFIER,
* parameters ANY DEFINED BY capabilityID OPTIONAL
* }
*
*/
public ASN1Primitive toASN1Primitive()
{
ASN1EncodableVector v = new ASN1EncodableVector();
v.add(capabilityID);
if (parameters != null)
{
v.add(parameters);
}
return new DERSequence(v);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy