A C D E F G H I L M N O P Q R S T U V

A

a_chi - Variable in class chat.MessaggioBase
La stringa che rappresenta il destinatario.
ACCLUDI_FIRMA_DIGITALE - Static variable in class chat.Monitor
Parametro di configurazione per usare o meno la crittografia.
aChi() - Method in class chat.MessaggioBase
Selettore primitiva per leggere il destinatario di questo messaggio.
ADD - Static variable in class chat.Protocollo
Tipo di datagramma che avvisa di un nuovo ingresso nella discussione.
ADOTTA_CRITTOGRAFIA - Static variable in class chat.Monitor
Parametro di configurazione per impiegare o meno la firma digitale.
aggiungi(Endpoint) - Method in class chat.Contatto
Aggiunge un Endpoint nella lista di quelli ammessi per l'istanza in questione.
agliInterlocutori(byte, byte[]) - Method in class chat.Monitor
Metodo che invia il messaggio specificato a tutti gli utenti dell'attuale gruppo di discussione.
algoritmo - Variable in class chat.Firma
L'algoritmo del java.security.Signature da impiegare.
algoritmo - Variable in class chat.Crittografia
L'algoritmo da usare nelle operazioni di cifratura e decifratura.
allaCache(DatagramPacket, int) - Method in class chat.SocketUDPaffidabile
Accesso in scrittura alla cache dei DatagramPacket estratti da sock ma non ancora letti dall'utente.
avanza() - Method in class chat.Cronometro
Metodo che fa (ri)partire il conteggio.
avanzaDaCapo() - Method in class chat.Cronometro
Azzera il cronometro e ne fa partire il conteggio.
avanzando - Variable in class chat.Cronometro
Variabile di stato che indica se il cronometro sta avanzando oppure no.
avanzaToken() - Method in class chat.Parser
Procedura per avanzare lungo il flusso di caratteri; da invocare OBBLIGATORIAMENTE all'avvio per portare il lexer interno sul primo token disponibile dallo stream di lettura.
avviato_a - Variable in class chat.Cronometro
Istante temporale dell'ultimo avvio del cronometro.
azzera() - Method in class chat.Cronometro
Metodo per (fermare ed) azzerare del cronometro.

C

c_privata - Variable in class chat.Monitor
La chiave crittografica privata dell'utente.
c_pubblica - Variable in class chat.Monitor
La chiave crittografica pubblica dell'utente.
c_sessione - Variable in class chat.Monitor
La chiave segreta di sessione per IDEA.
cache - Variable in class chat.SocketUDPaffidabile
Buffer temporaneo nel quale inserire i datagrammi non ancora letti dall'utente.
cancella() - Method in class chat.Database
Modificatore per azzerare l'archivio; primitiva solo per questione di comodità ed efficienza.
cancella(String) - Method in class chat.Database
Modificatore primitiva per eliminare un elemento.
carLecitoNome(char) - Static method in class chat.Contatto
Verifica che il carattere c possa appartenere al campo nome di un'istanza di Contatto.
chat - package chat
 
che_cosa - Variable in class chat.MessaggioBase
Il buffer contenente le informazioni da scambiare.
cheCosa() - Method in class chat.MessaggioBase
Selettore primitiva per accedere al contenuto della busta.
chiave - Variable in class chat.Contatto
La chiave crittografica.
chiave() - Method in class chat.Contatto
Selettore per accedere alla chiave crittografica.
chiave() - Method in class chat.Parser
Procedura associata alla regola di produzione "chiave" della grammatica.
chiudi() - Method in class chat.SocketUDPaffidabile
Chiusura del socket UDP usato internamente.
cifra(byte[], int, int, Key) - Method in class chat.Crittografia
Operazione di cifratura.
cifra(byte[], Key) - Method in class chat.Crittografia
Produce la versione cifrata del testo dati.
ComparaContatto - class chat.ComparaContatto.
Classe di utilità per ordinare gli elementi all'interno di un Database; contiene solo un metodo che effettua il confronto fra due oggetti di tipo Contatto, ordinandoli in senso crescente sulla base del nome().
ComparaContatto() - Constructor for class chat.ComparaContatto
 
compare(Object, Object) - Method in class chat.ComparaContatto
Realizza il confronto fra due Contatto.
Console - class chat.Console.
Classe che rappresenta la finestra di input della chat; possiede un unico metodo: il main().
Console() - Constructor for class chat.Console
 
contatore - Variable in class chat.Cronometro
Accumulatore contenente il numero dei millisecondi trascorsi.
Contatto - class chat.Contatto.
Classe atta a rappresentare un individuo, intendendo questi come l'insieme dei seguenti attributi: un nome testuale, composto di un numero variabile da 1 a 32 caratteri, ciascuno dei quali soddisfa il predicato di classe carLecitoNome(char c); una chiave crittografica java.security.Key; una lista contenente uno o più Endpoint.
Contatto(String, Key, Endpoint) - Constructor for class chat.Contatto
Unico costruttore.
contiene(String) - Method in class chat.Database
Predicato primitiva per verificare l'appartenenza di un certo nominativo entro l'archivio.
CreaChiaviRSA - class chat.CreaChiaviRSA.
Classe di utilità per creare le chiavi relative all'algoritmo RSA.
CreaChiaviRSA() - Constructor for class chat.CreaChiaviRSA
 
Crittografia - class chat.Crittografia.
Classe di utilità che semplifica l'uso della crittografia all'interno dei programmi Java.
Crittografia(String) - Constructor for class chat.Crittografia
Unico costruttore della classe.
Cronometro - class chat.Cronometro.
Classe di utilità che realizza un cronometro per misurare intervalli temporali espressi in millisecondi.
Cronometro() - Constructor for class chat.Cronometro
Costruttore: resetta il cronometro invocando il metodo d'istanza azzera().

D

da_chi - Variable in class chat.MessaggioBase
L'identificativo del mittente del messaggio.
daChi() - Method in class chat.MessaggioBase
Selettore primitiva per ottenere il nome del mittente del messaggio rappresentato dall'istanza.
Database - class chat.Database.
Classe per costruire un archivio di entità Contatto ordinate in modo crescente sulla base del campo nome.
Database() - Constructor for class chat.Database
Costruttore che istanzia un database vuoto.
Database(String) - Constructor for class chat.Database
Costruttore che legge il contenuto del database da un file.
decifra(byte[], int, int, Key) - Method in class chat.Crittografia
Operazione di decifratura.
decifra(byte[], Key) - Method in class chat.Crittografia
Produce la versione decifrata del testo dati.
directedBroadcast(InetAddress) - Static method in class chat.Utili
Funzione che calcola l'indirizzo IP di tutti gli host appartenenti ad una rete.
disponibili() - Method in class chat.SocketUDPaffidabile
Metodo per ottenere il numero di DatagramPacket disponibili alla lettura.
dove - Variable in class chat.Contatto
 
dove() - Method in class chat.Contatto
Selettore per ottenere la lista degli Endpoint associati all'istanza.

E

Endpoint - class chat.Endpoint.
Classe che astrae l'endpoint di una connessione di rete.
endpoint() - Method in class chat.Parser
Procedura associata alla regola di produzione "endpoint" della grammatica.
Endpoint(InetAddress, int) - Constructor for class chat.Endpoint
Costruttore.
entropia - Variable in class chat.Monitor
Un generatore di "casualità".
equals(Object) - Method in class chat.Endpoint
Metodo per verificare l'uguaglianza fra due Endpoint.
esegui() - Method in class chat.Monitor
Main-loop del programma: legge il contenuto del file di scambio con la Console e processa il comando, quindi esamina anche il socket affidabile per verificare i Messaggio ricevuti.
estraiSeqNum(DatagramPacket) - Method in class chat.SocketUDPaffidabile
Metodo che processa i datagrammi (non ACK) ricevuti dalla rete.
estraiSeqNum(DatagramPacket) - Method in class chat.Monitor
Procedura che ricava il numero di sequenza dei datagrammi UDP appenda ricevuti via socket.

F

ferma() - Method in class chat.Cronometro
Metodo che blocca l'avanzamento del cronometro.
FILE_DATABASE - Static variable in class chat.Monitor
Nome del file ASCII contenente la rubrica delle conoscenze.
FILE_SWAP - Static variable in class chat.Monitor
Nome del file di scambio dei messaggi con Console.
FIN - Static variable in class chat.Protocollo
Tipo di messaggio per terminare una chat; ha lo stesso significato dei segmenti TCP aventi il flag FIN attivo.
Firma - class chat.Firma.
Classe di utilità che semplifica l'uso della firma digitale all'interno dei programmi Java.
firma() - Method in class chat.Messaggio
Selettore primitiva per ottenere il campo "firma digitale".
firma(byte[], int, int, PrivateKey) - Method in class chat.Firma
Creazione della firma di un messaggio.
firma(byte[], PrivateKey) - Method in class chat.Firma
Semplice wrapper che equivale a: firma(messaggio, 0, messaggio.length, chiave);
Firma(String) - Constructor for class chat.Firma
Unico costruttore della classe.
firmaOk(byte[], byte[], PublicKey) - Method in class chat.Firma
Semplice wrapper che equivale a: firmaOk(messaggio, 0, messaggio.length, firma, chiave);
firmaOk(byte[], int, int, byte[], PublicKey) - Method in class chat.Firma
Test di validità della firma di un messaggio.
flush() - Method in class chat.SocketUDPaffidabile
Lettura di tutti i datagrammi, diversi dagli ACK, disponibili da sock.

G

generatore_c - Variable in class chat.Monitor
Il generatore delle chiavi segrete di sessione per IDEA.

H

hexByte(byte) - Static method in class chat.Utili
Funzione per ottenere la rappresentazione esadecimale di un byte.
hexByteArrayToString(byte[]) - Static method in class chat.Utili
Funzione per convertire in stringa il vettore di byte ricevuto come parametro, adottando una sintassi esadecimale Java-like per esprimerlo.
history - Variable in class chat.SocketUDPaffidabile
Archivio degli ultimi sequence number delle connessioni virtuali.
HistoryEntry - class chat.HistoryEntry.
Entità che rappresenta un'entry dell'history interna di SocketUDPaffidabile, usata per evitare duplicazioni dei messaggi UDP verso l'utente.
HistoryEntry(InetAddress, int, int) - Constructor for class chat.HistoryEntry
Costruttore che inizializza tutti i campi dell'istanza.

I

idea - Variable in class chat.Monitor
Oggetto per applicare l'algoritmo crittografico IDEA ai dati.
inserisciSeqNum(DatagramPacket) - Method in class chat.SocketUDPaffidabile
Metodo che processa i datagrammi prima di inviarli direttamente in rete.
inserisciSeqNum(DatagramPacket) - Method in class chat.Monitor
Procedura che numera i datagrammi UDP prima di inviarli in rete; utilizza seq_num incrementandolo di una quantità casuale ogni volta, lo firma se la costante di classe ACCLUDI_FIRMA_DIGITALE vale true, infine lo cifra se ADOTTA_CRITTOGRAFIA == true.
interlocutori - Variable in class chat.Monitor
Archivio con i Contatto dell'attuale gruppo di discussione.
intFromArray(byte[], int) - Static method in class chat.Utili
Funzione che ottiene un int partendo dalla sua versione serializzata di quattro byte.
intToArray(int, byte[], int) - Static method in class chat.Utili
Procedura che serializza un int in una serie di quattro byte contigui entro un byte[].
invia(DatagramPacket) - Method in class chat.SocketUDPaffidabile
Metodo per inviare in modo affidabile un datagramma UDP.
invia(DatagramPacket[]) - Method in class chat.SocketUDPaffidabile
Metodo per inviare in modo affidabile dei datagrammi UDP.
IP - Variable in class chat.Endpoint
L'indirizzo IP.
IP - Variable in class chat.HistoryEntry
L'indirizzo IP di provenienza dei datagrammi.
ip() - Method in class chat.Parser
Procedura associata alla regola di produzione "ip" della grammatica.
IP() - Method in class chat.Endpoint
Selettore per ottenere l'IP incapsulato nell'istanza.

L

last_seq_num - Variable in class chat.HistoryEntry
Il sequence number più alto ricevuto da questo endpoint.
leggi() - Method in class chat.Cronometro
Lettura del conteggio corrente effettuato dal cronometro.
lexer - Variable in class chat.Parser
Il lexer incapsulato, associato allo stream fisico.
Lexer - class chat.Lexer.
Implementazione del lexer specifico per la seguente grammatica: scopo ::= nome / chiave @ endpoint
nome ::= ( a |...| z | A |...| Z | 0 |...| 9 | _ | $ ) { a |...| z | A |...| Z | 0 |...| 9 | _ | $ }31
chiave ::= numero { , numero }
endpoint ::= ip : numero { @ ip : numero }
ip ::= numero .
Lexer(Reader) - Constructor for class chat.Lexer
Unico costruttore che inizializza il lexer con i caratteri separatori specificati dalla grammatica.

M

main(String[]) - Static method in class chat.Monitor
L'entry-point del programma.
main(String[]) - Static method in class chat.Console
L'entry-point del programma.
main(String[]) - Static method in class chat.CreaChiaviRSA
L'entry point del programma.
md5rsa - Variable in class chat.Monitor
Oggetto per generare e verificare le firme digitali.
Messaggio - class chat.Messaggio.
Classe che identifica un messaggio scambiato fra utenti adatto alle esigenze della chat: interpreta il contenuto del buffer interno di MessaggioBase per ottenere un sequence number, un byte che assegna il "tipo" di segmento informativo, un'eventuale firma digitale del testo vero e prorio incluso nella busta rappresentata.
Messaggio(String, String, byte[]) - Constructor for class chat.Messaggio
Costruttore che richiama quello della super-classe.
Messaggio(String, String, byte, byte[]) - Constructor for class chat.Messaggio
Costruttore più semplice che assegna un valore ai campi più usati dell'istanza di Messaggio.
Messaggio(String, String, int, byte, byte[], byte[]) - Constructor for class chat.Messaggio
Costruttore che permette di assegnare un valore specifico a tutti i campi dell'istanza di Messaggio.
MessaggioBase - class chat.MessaggioBase.
Implementazione di un generico messaggio scambiato fra due utenti: prevede un mittente, un destinatario ed un buffer di byte dimensionabile a piacere per contenere le informazioni da condividere fra i due.
MessaggioBase(String, String, byte[]) - Constructor for class chat.MessaggioBase
Costruttore.
messaggioFromDatagram(DatagramPacket) - Method in class chat.Monitor
Metodo che estrae un Messaggio serializzato da un DatagramPacket.
messaggioToDatagram(Messaggio, DatagramPacket) - Method in class chat.Monitor
Metodo che serializza un Messaggio riversandone il contenuto entro un DatagramPacket.
modifica(Contatto) - Method in class chat.Database
Modificatore primitiva per aggiungere un record all'archivio; se è già presente una entry avente lo stesso nome di c allora essa viene sovrascritta.
Monitor - class chat.Monitor.
Classe che realizza il monitor di output della chat; in questo contesto il termine "monitor" è da indendersi come "video", "area di visualizzazione".
Monitor() - Constructor for class chat.Monitor
Costruttore che avvia il Monitor sulla porta UDP di default PORTA_DEFAULT.
Monitor(int) - Constructor for class chat.Monitor
Costruttore che avvia il Monitor sulla porta UDP indicata.

N

nextToken() - Method in class chat.Lexer
Specializzazione di java.io.StreamTokenizer.nextToken() per il corretto parsing dei numeri (naturali in notazione decimale ed esadecimale Java-like, prefissati cioè da 0x).
nickname - Variable in class chat.Monitor
L'identità da adottare durante la chat.
nome - Variable in class chat.Contatto
Il nickname dell'individuo.
nome() - Method in class chat.Contatto
Selettore per ottenere il nome dell'istanza.
nome() - Method in class chat.Parser
Procedura associata alla regola di produzione "nome" della grammatica.
numero() - Method in class chat.Parser
Procedura associata alla regola di produzione "numero" della grammatica.

O

OK - Static variable in class chat.Protocollo
Marca i datagrammi di conferma per instaurare una conversazione; semanticamente rappresenta l'ACK di un segmento SYN adottato da TCP.

P

Parser - class chat.Parser.
Il parser specifico per la seguente grammatica: scopo ::= nome / chiave @ endpoint
nome ::= ( a |...| z | A |...| Z | 0 |...| 9 | _ | $ ) { a |...| z | A |...| Z | 0 |...| 9 | _ | $ }31
chiave ::= numero { , numero }
endpoint ::= ip : numero { @ ip : numero }
ip ::= numero .
Parser(Reader) - Constructor for class chat.Parser
Unico costruttore.
port - Variable in class chat.HistoryEntry
Il numero di porta di provenienza dei datagrammi.
porta - Variable in class chat.Endpoint
Il numero di porta TCP/UDP.
PORTA_DEFAULT - Static variable in class chat.Monitor
Porta UDP di default in assenza di direttive in fase di costruzione.
porta() - Method in class chat.Endpoint
Selettore per leggere il numero di porta incapsulato nell'istanza.
processaComando(String) - Method in class chat.Monitor
Interpreta un comando letto dal file di scambio swap con la Console.
prossimo() - Method in class chat.Parser
Procedura che estrae la prima parola disponibile dallo stream cui è associato il Lexer lexer.
Protocollo - class chat.Protocollo.
Classe che racchiude le costanti definite dal protocollo di dialogo utilizzato dalla chat.
Protocollo() - Constructor for class chat.Protocollo
 

Q

quanti() - Method in class chat.Database
Accesso per ottenere il numero di elementi contenuti; primitiva solo per questioni di comodità ed efficienza.

R

ricevi(DatagramPacket) - Method in class chat.SocketUDPaffidabile
Lettura, con eventuale attesa, del primo datagramma disponibile.
rsa - Variable in class chat.Monitor
Oggetto per applicare l'algoritmo crittografico RSA ai dati.
rubrica - Variable in class chat.Monitor
La rubrica con tutte le conoscenze.

S

s - Variable in class chat.Database
La tabella ad albero binario ordinata che contiene i singoli record.
scriviSeqNum(int) - Method in class chat.Messaggio
Modificatore primitiva che scrive il sequence number.
seleziona(String) - Method in class chat.Database
Selettore primitiva per ottenere un certo elemento dall'archivio.
seq_num - Variable in class chat.Monitor
Numero di sequenza dei datagrammi UDP inviati.
seqNum() - Method in class chat.Messaggio
Selettore primitiva che legge il sequence number.
sock - Variable in class chat.SocketUDPaffidabile
La socket UDP tramite la quale realizzare gli scambi affidabili di datagrammi.
SocketUDPaffidabile - class chat.SocketUDPaffidabile.
Astrazione di un socket UDP che utilizza Automatic Repeat reQuest (ARQ) per consegnare i datagrammi all'altro capo della rete.
SocketUDPaffidabile() - Constructor for class chat.SocketUDPaffidabile
Costruttore che crea il java.net.DatagramSocket interno da impiegare per l'accesso alla rete.
SocketUDPaffidabile(int) - Constructor for class chat.SocketUDPaffidabile
Costruttore che crea il java.net.DatagramSocket interno da impiegare per l'accesso alla rete, assegnandogli un numero di porta UDP da impiegare.
swap - Variable in class chat.Monitor
Un wrapper attorno al file coi messaggi provenienti dalla Console.
SYN - Static variable in class chat.Protocollo
Identifica i messaggi che richiedono un dialogo fra due utenti; equivale al flag SYN dei segmenti TCP.
SYNinviati - Variable in class chat.Monitor
Lista degli utenti a cui sono stati iniviati uno o più datagrammi di tipo SYN.
SYNricevuti - Variable in class chat.Monitor
Archivio degli utenti che ci hanno inviato un SYN ed ai quali non abbiamo ancora inviato il corrispondente OK.

T

TENTATIVI - Static variable in class chat.SocketUDPaffidabile
Numero massimo di invii per ciascun datagramma nel caso non sia ricevuta alcuna conferma (ACK) da parte dal destinatario.
testo() - Method in class chat.Messaggio
Selettore primitiva per accedere al testo del messaggio.
TEXT - Static variable in class chat.Protocollo
Caratterizza i messaggi testuali facenti parte del colloquio.
TIMEOUT - Static variable in class chat.SocketUDPaffidabile
Timeout in millisecondi fra l'invio di un messaggio e la ricezione del relativo acknowledge.
tipo() - Method in class chat.Messaggio
Selettore primitiva che ritorna il "tipo" del messaggio.
tokenCorrente() - Method in class chat.Parser
Funzione che restituisce il token disponibile dal Lexer lexer, senza estrarne uno nuovo.
tokenCorrente() - Method in class chat.Lexer
Funzione che ritorna una rappresentazione testuale del token corrente ultimo estratto dallo stream.
toString() - Method in class chat.Endpoint
Convertitore; in questa realizzazione è una primitiva solo per questioni di efficienza.
toString() - Method in class chat.Database
Convertitore per ottenere la rappresentazione testuale del contenuto dell'archivio, conforme alla grammatica definita da Parser per esprimere un Contatto. non è una primitiva.
toString() - Method in class chat.Contatto
Convertitore per avere la rappresentazione testuale di questa istanza.
toString() - Method in class chat.Cronometro
Conversione in stringa del conteggio corrente.
tutti() - Method in class chat.Database
Accesso primitiva per ottenere tutti gli elementi.

U

Utili - class chat.Utili.
Classe contenente solo ed esclusivamente metodi di tipo public static che realizzano funzioni di utilità.
Utili() - Constructor for class chat.Utili
 

V

visualizzaInterlocutori() - Method in class chat.Monitor
Funzione che visualizza sullo standard output i nomi degli interlocutori attuali.

A C D E F G H I L M N O P Q R S T U V