Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Rice Pastry API
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.mpisws.p2p.transport.peerreview.authpush
Class AuthenticatorPushProtocolImpl<Handle extends RawSerializable,Identifier extends RawSerializable>

    java.lang.Object
      org.mpisws.p2p.transport.peerreview.authpush.AuthenticatorPushProtocolImpl<Handle,Identifier>

All Implemented Interfaces:
  AuthenticatorPushProtocol<Handle,Identifier>, PeerReviewConstants, StatusConstants

    public class AuthenticatorPushProtocolImpl<Handle extends RawSerializable,Identifier extends RawSerializable>

extends java.lang.Object
implements AuthenticatorPushProtocol<Handle,Identifier>

This protocol collects authenticators from incoming messages and, once in a while, batches them together and sends them to the witnesses.

Field Summary

Fields inherited from interface org.mpisws.p2p.transport.peerreview.PeerReviewConstants
`AUTH_CACHE_INTERVAL, CERT_MISSING, CHAL_AUDIT, CHAL_SEND, DEFAULT_AUDIT_INTERVAL_MILLIS, DEFAULT_AUTH_PUSH_INTERVAL_MILLIS, DEFAULT_CHECKPOINT_INTERVAL_MILLIS, DEFAULT_LOG_DOWNLOAD_TIMEOUT, DEFAULT_TIME_TOLERANCE_MILLIS, EVT_ACK, EVT_CHECKPOINT, EVT_CHOOSE_Q, EVT_CHOOSE_RAND, EVT_INIT, EVT_MAX_RESERVED, EVT_MAX_SOCKET_EVT, EVT_MIN_SOCKET_EVT, EVT_RECV, EVT_SEND, EVT_SENDSIGN, EVT_SIGN, EVT_SOCKET_CAN_READ, EVT_SOCKET_CAN_RW, EVT_SOCKET_CAN_WRITE, EVT_SOCKET_CLOSE, EVT_SOCKET_CLOSED, EVT_SOCKET_EXCEPTION, EVT_SOCKET_OPEN_INCOMING, EVT_SOCKET_OPEN_OUTGOING, EVT_SOCKET_OPENED_OUTGOING, EVT_SOCKET_READ, EVT_SOCKET_SHUTDOWN_OUTPUT, EVT_SOCKET_WRITE, EVT_VRF, EX_TYPE_ClosedChannel, EX_TYPE_IO, EX_TYPE_Unknown, FLAG_FULL_MESSAGES_ALL, FLAG_FULL_MESSAGES_SENDER, FLAG_INCLUDE_CHECKPOINT, INVALID, INVESTIGATION_INTERVAL_MILLIS, MAINTENANCE_INTERVAL_MILLIS, MAX_ACTIVE_AUDITS, MAX_ACTIVE_INVESTIGATIONS, MAX_ENTRIES_BETWEEN_CHECKPOINTS, MAX_STATUS_INFO, MAX_WITNESSED_NODES, MSG_ACCUSATION, MSG_ACK, MSG_AUTHPUSH, MSG_AUTHREQ, MSG_AUTHRESP, MSG_CHALLENGE, MSG_RESPONSE, MSG_USERDATA, MSG_USERDGRAM, NO_CERTIFICATE, PROGRESS_INTERVAL_MILLIS, PROOF_INCONSISTENT, PROOF_NONCONFORMANT, RESP_AUDIT, RESP_SEND, SIGNATURE_BAD, SIGNATURE_OK, STATE_SEND_AUDIT, STATE_WAIT_FOR_LOG, TI_AUTH_PUSH, TI_CHECKPOINT, TI_MAINTENANCE, TI_MAKE_PROGRESS, TI_MAX_RESERVED, TI_START_AUDITS, TI_STATUS_INFO, VALID`

Fields inherited from interface org.mpisws.p2p.transport.peerreview.StatusConstants
`STATUS_EXPOSED, STATUS_SUSPECTED, STATUS_TRUSTED`

Constructor Summary
`AuthenticatorPushProtocolImpl(PeerReview<Handle,Identifier> peerreview, AuthenticatorStore<Identifier> inStore, AuthenticatorStore<Identifier> outStore, AuthenticatorStore<Identifier> pendingStore, IdentityTransport<Handle,Identifier> transport, PeerInfoStore<Handle,Identifier> infoStore, EvidenceTransferProtocol<Handle,Identifier> evidenceTransferProtocol, Environment env)`

Method Summary
`void` | `addAuthenticatorsIfValid(java.util.List<Authenticator> authenticators, Identifier id)` Called when some other node sends us an AUTHPUSH message.
`void` | `continuePush(java.util.Map<Identifier,java.util.Collection<Handle>> subjectsToWitnesses)`
`void` | `enableProbabilisticChecking(double pXmit)`
`void` | `handleIncomingAuthenticators(Handle source, AuthPushMessage<Identifier> msg)` Called when some other node sends us an AUTHPUSH message.
`void` | `notifyCertificateAvailable(Identifier id)` When we receive a new certificate, we may be able to check some more signatures on auths in the authPendingStore
`void` | `push()`
`protected void` | `sendAuthenticators(Handle h, java.util.Map<Identifier,java.util.List<Authenticator>> authenticators)` TODO: make this use udp, or smaller AuthPushMessages

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### AuthenticatorPushProtocolImpl

    public AuthenticatorPushProtocolImpl(PeerReview<Handle,Identifier> peerreview,
                                         AuthenticatorStore<Identifier> inStore,
                                         AuthenticatorStore<Identifier> outStore,
                                         AuthenticatorStore<Identifier> pendingStore,
                                         IdentityTransport<Handle,Identifier> transport,
                                         PeerInfoStore<Handle,Identifier> infoStore,
                                         EvidenceTransferProtocol<Handle,Identifier> evidenceTransferProtocol,
                                         Environment env)

Method Detail

### enableProbabilisticChecking

    public void enableProbabilisticChecking(double pXmit)

### push

    public void push()

  Specified by:
    `push` in interface `AuthenticatorPushProtocol<Handle extends RawSerializable,Identifier extends RawSerializable>`

### continuePush

    public void continuePush(java.util.Map<Identifier,java.util.Collection<Handle>> subjectsToWitnesses)

  Specified by:
    `continuePush` in interface `AuthenticatorPushProtocol<Handle extends RawSerializable,Identifier extends RawSerializable>`

### sendAuthenticators

    protected void sendAuthenticators(Handle h,
                                      java.util.Map<Identifier,java.util.List<Authenticator>> authenticators)
                               throws java.io.IOException

  TODO: make this use udp, or smaller AuthPushMessages

  Parameters:
    `h` -
    `authenticators` -
  Throws:
    `java.io.IOException`

### addAuthenticatorsIfValid

    public void addAuthenticatorsIfValid(java.util.List<Authenticator> authenticators,
                                         Identifier id)

  Called when some other node sends us an AUTHPUSH message. The message may contain authenticators from multiple nodes. If, for some node, we don't have a certificate, we store its auths in the authPendingStore and request the certificate from the sender, otherwise we check the auths' signatures and put them into the authInStore.

### handleIncomingAuthenticators

    public void handleIncomingAuthenticators(Handle source,
                                             AuthPushMessage<Identifier> msg)

  Called when some other node sends us an AUTHPUSH message. The message may contain authenticators from multiple nodes. If, for some node, we don't have a certificate, we store its auths in the authPendingStore and request the certificate from the sender, otherwise we check the auths' signatures and put them into the authInStore.

  Specified by:
    `handleIncomingAuthenticators` in interface `AuthenticatorPushProtocol<Handle extends RawSerializable,Identifier extends RawSerializable>`

### notifyCertificateAvailable

    public void notifyCertificateAvailable(Identifier id)

  When we receive a new certificate, we may be able to check some more signatures on auths in the authPendingStore

  Specified by:
    `notifyCertificateAvailable` in interface `AuthenticatorPushProtocol<Handle extends RawSerializable,Identifier extends RawSerializable>`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Rice Pastry API
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2005 - Rice Pastry.