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.
/** * 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
/** * 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.
/** * Enable the setting of thread local configuration properties. */
public static final String THREAD_LOCAL_CONFIG = "threadLocalConfig";
Enable the setting of the default SecureRandom.
/** * Enable the setting of the default SecureRandom. */
public static final String DEFAULT_RANDOM = "defaultRandomConfig"; private final Set<String> actions = new HashSet<String>(); 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(); } }