org.spongycastle.jce.X509KeyUsage Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of prov Show documentation
Show all versions of prov 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.jce;
import org.spongycastle.asn1.ASN1Object;
import org.spongycastle.asn1.ASN1Primitive;
import org.spongycastle.asn1.x509.KeyUsage;
/**
* A holding class for constructing an X509 Key Usage extension.
*
*
* id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
*
* KeyUsage ::= BIT STRING {
* digitalSignature (0),
* nonRepudiation (1),
* keyEncipherment (2),
* dataEncipherment (3),
* keyAgreement (4),
* keyCertSign (5),
* cRLSign (6),
* encipherOnly (7),
* decipherOnly (8) }
*
*/
public class X509KeyUsage
extends ASN1Object
{
public static final int digitalSignature = 1 << 7;
public static final int nonRepudiation = 1 << 6;
public static final int keyEncipherment = 1 << 5;
public static final int dataEncipherment = 1 << 4;
public static final int keyAgreement = 1 << 3;
public static final int keyCertSign = 1 << 2;
public static final int cRLSign = 1 << 1;
public static final int encipherOnly = 1 << 0;
public static final int decipherOnly = 1 << 15;
private int usage = 0;
/**
* Basic constructor.
*
* @param usage - the bitwise OR of the Key Usage flags giving the
* allowed uses for the key.
* e.g. (X509KeyUsage.keyEncipherment | X509KeyUsage.dataEncipherment)
*/
public X509KeyUsage(
int usage)
{
this.usage = usage;
}
public ASN1Primitive toASN1Primitive()
{
return new KeyUsage(usage).toASN1Primitive();
}
}