org.bouncycastle.crypto.CryptoServicesPermission Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcprov-ext-jdk15on Show documentation
Show all versions of bcprov-ext-jdk15on 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. Note: this package includes the NTRU encryption algorithms.
package org.bouncycastle.crypto;
import java.security.Permission;
import java.util.HashSet;
import java.util.Set;
/**
* Permissions that need to be configured if a SecurityManager is used.
*/
public class CryptoServicesPermission
extends Permission
{
/**
* Enable the setting of global configuration properties. This permission implies THREAD_LOCAL_CONFIG
*/
public static final String GLOBAL_CONFIG = "globalConfig";
/**
* Enable the setting of thread local configuration properties.
*/
public static final String THREAD_LOCAL_CONFIG = "threadLocalConfig";
/**
* Enable the setting of the default SecureRandom.
*/
public static final String DEFAULT_RANDOM = "defaultRandomConfig";
private final Set actions = new HashSet();
public CryptoServicesPermission(String name)
{
super(name);
this.actions.add(name);
}
public boolean implies(Permission permission)
{
if (permission instanceof CryptoServicesPermission)
{
CryptoServicesPermission other = (CryptoServicesPermission)permission;
if (this.getName().equals(other.getName()))
{
return true;
}
if (this.actions.containsAll(other.actions))
{
return true;
}
}
return false;
}
public boolean equals(Object obj)
{
if (obj instanceof CryptoServicesPermission)
{
CryptoServicesPermission other = (CryptoServicesPermission)obj;
if (this.actions.equals(other.actions))
{
return true;
}
}
return false;
}
public int hashCode()
{
return actions.hashCode();
}
public String getActions()
{
return actions.toString();
}
}