|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.actor.AtomicActor
ptolemy.actor.TypedAtomicActor
ptolemy.actor.lib.security.SignatureActor
public class SignatureActor
A common base class for actors that use cryptographic signatures.
In cryptography, digital signatures can be used to verify that the data was not modified in transit. However, the data itself is passed in clear text.
The signature algorithms that maybe implemented are limited to the signature algorithms that are implemented by providers following the JCE specifications and installed on the machine being run. In case a provider specific instance of an algorithm is needed, the provider may also be specified in the provider parameter.
The input and output are both arrays of unsigned bytes.
In initialize(), this actor sets the value of the _signature member to the results of calling java.security.Signature.getInstance() with the values of the signatureAlgorithm and provider parameters. Derived classes should have a fire() method that uses the _signature member to process data appropriately. In the fire() method of the derived class, super.fire() should be called before accessing _signature so that _signature may be updated if the attributes changed.
This actor relies on the Java Cryptography Architecture (JCA) and Java
Cryptography Extension (JCE). See the
CryptographyActor
documentation for
resources about JCA and JCE.
Red (cxh) |
Yellow (cxh) |
Nested Class Summary |
---|
Nested classes/interfaces inherited from class ptolemy.kernel.Entity |
---|
Entity.ContainedObjectsIterator |
Field Summary | |
---|---|
protected java.lang.String |
_provider
The name of the provider to be used for a provider specific implementation. |
protected java.security.Signature |
_signature
The signature that will be used to process the data. |
protected java.lang.String |
_signatureAlgorithm
The name of the signature algorithm to be used. |
private boolean |
_updateSignatureNeeded
|
TypedIOPort |
input
This port takes in an unsigned byte array and processes the data. |
TypedIOPort |
output
This port sends out the processed data received from input in the form of an unsigned byte array. |
StringParameter |
provider
Specify a provider for the given algorithm. |
StringParameter |
signatureAlgorithm
Specify the algorithm to be used to sign data. |
Fields inherited from class ptolemy.actor.AtomicActor |
---|
_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested |
Fields inherited from class ptolemy.kernel.util.NamedObj |
---|
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _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 | |
---|---|
SignatureActor(CompositeEntity container,
java.lang.String name)
Construct an actor with the given container and name. |
Method Summary | |
---|---|
private void |
_updateSignature()
If necessary, the value of _signature is updated by calling Signature.getInstance() with an argument that is created from the values of the _signatureAlgorithm and _provider |
void |
attributeChanged(Attribute attribute)
Override the base class to reinitialize the state if the the signatureAlgorithm, or provider parameter is changed. |
void |
fire()
Update _signature if an attribute has changed and then invoke super.fire() to transform the input data. |
void |
initialize()
Use the values of the signatureAlgorithm and provider parameters to initialize the java.security.Signature object. |
Methods inherited from class ptolemy.actor.TypedAtomicActor |
---|
_addPort, _fireAt, _fireAt, attributeTypeChanged, clone, newPort, typeConstraintList, typeConstraints |
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.InstantiableNamedObj |
---|
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition |
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.actor.Executable |
---|
isFireFunctional, isStrict, iterate, postfire, prefire, stop, stopFire, terminate |
Methods inherited from interface ptolemy.actor.Initializable |
---|
addInitializable, preinitialize, removeInitializable, wrapup |
Methods inherited from interface ptolemy.kernel.util.Nameable |
---|
description, getContainer, getDisplayName, getFullName, getName, getName, setName |
Methods inherited from interface ptolemy.kernel.util.Derivable |
---|
getDerivedLevel, getDerivedList, propagateValue |
Field Detail |
---|
public TypedIOPort input
public TypedIOPort output
public StringParameter provider
public StringParameter signatureAlgorithm
protected java.lang.String _provider
protected java.security.Signature _signature
protected java.lang.String _signatureAlgorithm
private boolean _updateSignatureNeeded
Constructor Detail |
---|
public SignatureActor(CompositeEntity container, java.lang.String name) throws NameDuplicationException, IllegalActionException
container
- The container.name
- The name of this actor.
IllegalActionException
- If the actor cannot be contained
by the proposed container.
NameDuplicationException
- If the container already has an
actor with this name.Method Detail |
---|
public void attributeChanged(Attribute attribute) throws IllegalActionException
attributeChanged
in class NamedObj
attribute
- The attribute that changed.
IllegalActionException
- Not thrown in this base class.public void fire() throws IllegalActionException
fire
in interface Executable
fire
in class AtomicActor
IllegalActionException
- If thrown by the base class or
if there is a problem processing the data.public void initialize() throws IllegalActionException
initialize
in interface Initializable
initialize
in class AtomicActor
IllegalActionException
- If the base class throws it,
if the algorithm is not found, or if the specified provider does
not exist.private void _updateSignature() throws IllegalActionException
IllegalActionException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |