Skip to content
CiscosProgrammingPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

SSC

Francisco Rodrigues dos Santos 72908 Teresa Domingos 73433

Inicialmente o cliente pode escolher entre as seguintes variações de encriptação, que devem estar escritas da seguinte maneira no ficheiro cryptoconfig.txt:

1º
AES GCM
KEYSIZE 256 bits
2º 
AES CBC PKCS5Padding
KEYSIZE 256 bits
HMAC-SHA256
MACKEYSIZE: 256 bits
3º
CHACHA20 Poly1305
KEYSIZE 256 bits

Para alterar o tipo de encriptação não é necessária a recompilação, apenas que o ficheiro seja salvo com as novas alterações.

Relativamente ao funcionamento deste projeto existem as seguintes particularidades. Em primeiro deve ser iniciado o ficheiro BlockStorageServer.java de modo a que posteriormente ao se inicializar BlockStorageClient que se consiga conectar ao Servidor.

1º java BlockStorageServer
2º java BlockStorageClient

O cliente como forma de identificação deve providenciar um id e uma palavra passe que funcionaram como "autenticação" e distinção de clientes. Estes campos vao ser pedidos do lado do Cliente através do terminal.

3º 1904 (exemplo)
4º palavra passe (exemplo)

Relativamente às funcionalidades que o cliente temos as operações:

    PUT: ..
        Para executar basta selecionar no terminal do cliente. 
        Exemplo:
        5º Put
        6º caminho do ficheiro
        7º keywords que queremos atribuir a esse ficheiro
    LIST ..
        Para executar basta selecionar no terminal do cliente. Adicionalmente ele irá listar os ficheiros baseando-se no client_index de cada cliente de forma a que diferentes clientes apenas tenham              acesso aos seus              ficheiros.
        Exemplo:
        8º List
    GET .. 
        Para executar basta selecionar no terminal do cliente. Para recebermos o ficheiro de volta vamos fornecer o nome do ficheiro ao servidor.
        9º Get
        10º ficheiro.txt (exemplo)
    SEARCH
        Para executar esta funcionalidade basta selecionar no terminal do cliente e posteriormente fornecer o conjunto de keywords que queremos procurar separadas por ",".
        11º Search
        12º keyword1,keyword2
    EXIT
        Eventualmente se quisermos terminar a sessão do cliente basta selecionar esta opção.
        13º Exit

Quanto aos testes o cltest é feito dentro da pasta do Cliente por uma questão de Implementação (Questão discutida com o professor em aula). Visto que a lógica dos clientes prevalece nos Ids e palavras passes, decidimos que os comandos de teste vão incluir estes parametros para este teste.

Exemplo de todos os comandos de teste:
PUT: $ java cltest -id 1904 -pwd StrongPass123! PUT clientfiles/ficheiroteste.txt "keyword1,keyword2,keyword3"
LIST: $ java cltest -id 1904 -pwd StrongPass123! LIST
SEARCH: $ java cltest -id 1904 -pwd StrongPass123! SEARCH keyword1
GET:
    Variante 1: $ java cltest -id 1904 -pwd StrongPass123! GET FILE relatorio.pdf .
    Variante 2: $ java cltest -id 1904 -pwd StrongPass123! GET KEYWORDS "financas" .
    Variante 3: $ java cltest -id 1904 -pwd StrongPass123! GET CHECKINTEGRITY relatorio.pdf

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages