ptolemy.actor.lib.security
Class SignatureVerifier
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.SignatureActor
ptolemy.actor.lib.security.SignatureVerifier
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
public class SignatureVerifier
- extends SignatureActor
Verify the signature of the input data.
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 provider and signatureAlgorithm parameters should
be set to the values used to generate the publicKey. See PublicKeyReader
and SignatureActor
for possible values.
The provider and signatureAlgorithm parameters should
be set to the same value as the corresponding parameter in the
SignatureSigner actor.
This actor reads a KeyToken public key from the
publicKey port and then reads unsigned byte arrays from
the signature port and verifies the signature of
each unsigned byte array that appears on the input port.
If the signature is valid, then the unsigned byte array
data on the input port is passed to the output port.
If the signature is not valid, then an exception is thrown.
This actor relies on the Java Cryptography Architecture (JCA) and Java
Cryptography Extension (JCE). See the
CryptographyActor
documentation for
resources about JCA and JCE.
- Since:
- Ptolemy II 4.0
- Version:
- $Id: SignatureVerifier.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Christopher Hylands Brooks, Contributor: Rakesh Reddy
- See Also:
PublicKeyReader
,
Serialized Form
- Accepted Rating:
- Proposed Rating:
Fields inherited from class ptolemy.kernel.util.NamedObj |
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Method Summary |
void |
fire()
Read in the publicKey, input and signature tokens, verify
the signature and write the input data on the output port. |
Methods inherited from class ptolemy.actor.AtomicActor |
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, clone, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, postfire, prefire, preinitialize, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate, wrapup |
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 |
signature
public TypedIOPort signature
- The signature of the data. The type of this input port
is unsigned byte array.
publicKey
public TypedIOPort publicKey
- The public key that is used to verify the signature.
This port receives the public key to be used from the
The type of this input port is an KeyToken containing
a java.security.PublicKey.
_publicKey
private java.security.PublicKey _publicKey
SignatureVerifier
public SignatureVerifier(CompositeEntity container,
java.lang.String name)
throws NameDuplicationException,
IllegalActionException
- 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.
fire
public void fire()
throws IllegalActionException
- Read in the publicKey, input and signature tokens, verify
the signature and write the input data on the output port.
- Specified by:
fire
in interface Executable
- Overrides:
fire
in class SignatureActor
- Throws:
IllegalActionException
- If thrown by a base class,
if there is a problem with the cryptographic configuration or
if the signature does not properly verify.