Package ptolemy.actor.lib.security
Class KeyReader
- java.lang.Object
-
- All Implemented Interfaces:
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$
- Author:
- Christopher Hylands Brooks
- See Also:
PrivateKeyReader
,PublicKeyReader
- Pt.AcceptedRating:
- Red (cxh)
- Pt.ProposedRating:
- Yellow (cxh)
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
-
-
Field Summary
Fields Modifier and Type Field Description Parameter
getPublicKey
True if we should get the public key.TypedIOPort
output
The output port.StringParameter
signatureAlgorithm
The name of the signature algorithm used to generate the key.TypedIOPort
trigger
The trigger port.Parameter
verifyCertificate
True if the certificate associated with a key should be verified.-
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.actor.TypedAtomicActor
_typesValid
-
Fields inherited from class ptolemy.actor.AtomicActor
_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested
-
Fields inherited from class ptolemy.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _deferChangeRequests, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
-
Fields inherited from interface ptolemy.actor.Executable
COMPLETED, NOT_READY, STOP_ITERATING
-
-
Constructor Summary
Constructors Constructor Description KeyReader(CompositeEntity container, java.lang.String name)
Construct an actor with the given container and name.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.lib.security.KeyStoreActor
_initializeKeyStore, _loadKeyStore, createKeystore, fileOrURLDescription, stopFire, wrapup
-
Methods inherited from class ptolemy.actor.TypedAtomicActor
_containedTypeConstraints, _customTypeConstraints, _defaultTypeConstraints, _fireAt, _fireAt, attributeTypeChanged, clone, clone, isBackwardTypeInferenceEnabled, newPort, typeConstraintList, typeConstraints
-
Methods inherited from class ptolemy.actor.AtomicActor
_actorFiring, _actorFiring, _declareDelayDependency, addActorFiringListener, addInitializable, 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
_addPort, _description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName
-
Methods inherited from class ptolemy.kernel.InstantiableNamedObj
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition
-
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _containedDecorators, _copyChangeRequestList, _debug, _debug, _debug, _debug, _debug, _executeChangeRequests, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _notifyHierarchyListenersAfterChange, _notifyHierarchyListenersBeforeChange, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, addHierarchyListener, attributeDeleted, attributeList, attributeList, decorators, 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, notifyOfNameChange, propagateValue, propagateValues, removeAttribute, removeChangeListener, removeDebugListener, removeHierarchyListener, 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
-
Methods inherited from interface ptolemy.actor.Actor
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList
-
Methods inherited from interface ptolemy.kernel.util.Derivable
getDerivedLevel, getDerivedList, propagateValue
-
Methods inherited from interface ptolemy.actor.Executable
isFireFunctional, isStrict, iterate, postfire, prefire, stop, terminate
-
Methods inherited from interface ptolemy.actor.Initializable
addInitializable, initialize, preinitialize, removeInitializable
-
Methods inherited from interface ptolemy.kernel.util.Nameable
description, getContainer, getDisplayName, getFullName, getName, getName, setName
-
-
-
-
Field Detail
-
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.
-
-
Constructor Detail
-
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.
-
-
Method Detail
-
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 classKeyStoreActor
- 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 interfaceExecutable
- Overrides:
fire
in classKeyStoreActor
- 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.
-
-