ptolemy.actor.lib.security
Class KeyReader
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.actor.AtomicActor
ptolemy.actor.TypedAtomicActor
ptolemy.actor.lib.security.KeyStoreActor
ptolemy.actor.lib.security.KeyReader
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
- Direct Known Subclasses:
- PrivateKeyReader, PublicKeyReader
public class KeyReader
- extends KeyStoreActor
Read in a keystore from a FileParameter and output a Key.
Keystores are ways to manage keys and certificates.
See the KeyStoreActor
documentation for more information about
keystores.
This class has many parameters, derived classes usually set some
of the parameters to reasonable defaults and then hide them
by setting the visibility to EXPERT.
- Since:
- Ptolemy II 4.0
- Version:
- $Id: KeyReader.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Christopher Hylands Brooks
- See Also:
PrivateKeyReader
,
PublicKeyReader
,
Serialized Form
- Accepted Rating:
- Proposed Rating:
Fields inherited from class ptolemy.actor.lib.security.KeyStoreActor |
_alias, _keyPassword, _keyStore, _keyStoreType, _loadKeyStoreNeeded, _provider, _storePassword, alias, createFileOrURLIfNecessary, fileOrURL, keyPassword, keyStoreType, provider, storePassword |
Fields inherited from class ptolemy.kernel.util.NamedObj |
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Constructor Summary |
KeyReader(CompositeEntity container,
java.lang.String name)
Construct an actor with the given container and name. |
Method Summary |
protected void |
_updateKey()
If necessary, update _key by using the values of the
alias, fileOrURL and getPublicKey parameters. |
void |
attributeChanged(Attribute attribute)
Override the base class to reinitialize the state if
the alias, fileOrURL, or getPublicKey
parameter is changed. |
void |
fire()
Output the java.security.Key that was read in. |
Methods inherited from class ptolemy.actor.AtomicActor |
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, clone, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, initialize, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, postfire, prefire, preinitialize, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, terminate |
Methods inherited from class ptolemy.kernel.ComponentEntity |
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName |
Methods inherited from class ptolemy.kernel.Entity |
_description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName |
Methods inherited from class ptolemy.kernel.util.NamedObj |
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _propagateValue, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, attributeList, attributeList, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
getPublicKey
public Parameter getPublicKey
- True if we should get the public key. False if we should
get the private key. The default value is true.
Getting the private key requires using the keyPassword.
output
public TypedIOPort output
- The output port. This port contains an KeyToken that contains
a java.security.Key.
trigger
public TypedIOPort trigger
- The trigger port. The type of this port is undeclared, meaning
that it will resolve to any data type.
signatureAlgorithm
public StringParameter signatureAlgorithm
- The name of the signature algorithm used to generate the key.
This StringParameter is not settable by the user, it is set
after initialize() is called and the certificate has been
obtained from the KeyStore.
verifyCertificate
public Parameter verifyCertificate
- True if the certificate associated with a key should be verified.
False if the certificate (if any) need not be verified.
Public Keys must be associated with a certificate, so
if getPublicKey is true, then this Parameter should
be true as well.
Private keys are usually associated with a certificate, so
verifying the certificate is a good idea.
Secret keys do not usually have a certificate, so if the
key is a secret key, then usually verifyCertificate
is set to false.
_getPublicKey
private boolean _getPublicKey
_key
private java.security.Key _key
_updateKeyNeeded
private boolean _updateKeyNeeded
_verifyCertificate
private boolean _verifyCertificate
KeyReader
public KeyReader(CompositeEntity container,
java.lang.String name)
throws IllegalActionException,
NameDuplicationException
- Construct an actor with the given container and name.
- Parameters:
container
- The container.name
- The name of this actor.
- Throws:
IllegalActionException
- If the actor cannot be contained
by the proposed container.
NameDuplicationException
- If the container already has an
actor with this name.
attributeChanged
public void attributeChanged(Attribute attribute)
throws IllegalActionException
- Override the base class to reinitialize the state if
the alias, fileOrURL, or getPublicKey
parameter is changed.
- Overrides:
attributeChanged
in class KeyStoreActor
- Parameters:
attribute
- The attribute that has changed.
- Throws:
IllegalActionException
- If the specified attribute
is URL and the file cannot be opened.
fire
public void fire()
throws IllegalActionException
- Output the java.security.Key that was read in.
Read at most one input token from each channel of the trigger
input and discard it. If the trigger input is not connected,
then this method does nothing. Derived classes should be
sure to call super.fire(), or to consume the trigger input
tokens themselves, so that they aren't left unconsumed.
- Specified by:
fire
in interface Executable
- Overrides:
fire
in class KeyStoreActor
- Throws:
IllegalActionException
- Not thrown in this base class.
IllegalActionException
- If there's no director.
_updateKey
protected void _updateKey()
throws IllegalActionException
- If necessary, update _key by using the values of the
alias, fileOrURL and getPublicKey parameters.
- Throws:
IllegalActionException
- If the parent class throws it
or if there is a problem with the cryptographic configuration.