Skip to content

theduardomaciel/cryptosia-web

Repository files navigation

cryptosia

Main projeto cover.

💻 Projeto

Utilize o cryptosia para gerar chaves pública e privada em sintonia, garantindo segurança simplificada de mensagens simples por meio da Criptografia RSA.

Note

O backend do projeto está disponível em: https://github.com/theduardomaciel/cc-md/tree/master/projeto


✨ Tecnologias

Frontend Backend
HTML WebAssembly
CSS Emscripten
TypeScript C
Next.js
TailwindCSS
Radix & Radix Icons

💽 Como compilar o backend em C

Important

O passo a passo disponível a seguir refere-se à compilação em um dispositivo Windows. Para especificações em outros sistemas operacionais, visite a página oficial do emscripten.


  • Siga as instruções de instalação do emscripten em emscripten.org/docs/getting_started/downloads.html
  • Abra o terminal Emscripten Windows Command Prompt (emcmdprompt.bat) disponível no diretório \emscripten\emsdk e navegue até \upstream\emscripten/
  • Com o terminal no diretório correto, compile o arquivo cryptosia.c com o seguinte comando:
emcc -O3 "[diretório do arquivo C]\cryptosia.c" -o "[diretório de saída]\cryptosia.js" -lm -lgmp --profiling-funcs -s MODULARIZE -s WASM=1 -s EXPORT_NAME="CRYPTOSIA" -s ENVIRONMENT="web" -s EXPORTED_FUNCTIONS=[nome das funções antecipados de "_", sem espaços e separados por "," como em "_int_sqrt"] EXPORTED_RUNTIME_METHODS=ccall,cwrap,UTF8ToString,stringToNewUTF8

Exemplo:

emcc -O3 -o cryptosia.js cryptosia.c ${HOME}/opt/lib/libgmp.a -I${HOME}/opt/include -s MODULARIZE -s WASM=1 -s EXPORT_NAME="CRYPTOSIA" -s ENVIRONMENT="web" -s EXPORTED_FUNCTIONS=_n_factor,_publicKey_totient,_publicKey_e,_privateKey_d,_mdc,_cryptosia_encrypt,_cryptosia_decrypt -s EXPORTED_RUNTIME_METHODS=ccall,cwrap,UTF8ToString,stringToNewUTF8 -lm

Note

O argumento -O3 é utilizado para otimizar o código. Portanto, ao utilizá-lo, prepare-se para tempos de compilação maiores.
Para tempos mais rápidos, utilize níveis de otimização menor como -O1, O2 ou Oz!
Além da otimização de código, as funções exportadas em EXPORTED_RUNTIME_METHODS podem ser consultados neste link

  • Copie os arquivos cryptosia.js e cryptosia.wasm gerados para a pasta public do projeto

🚀 Como executar

  • Clone o repositório
  • Instale as dependências com npm, yarn ou pnpm
  • Inicie o servidor com npm run dev, yarn dev ou pnpm dev

Agora você pode acessar localhost:3000 do seu navegador.


👥 Grupo

  • Eduardo Maciel Alexandre - Frontend e backend
  • David Enéas Ferreira - Backend
  • Maria Emily Nayla Gomes da Silva - Fundamentação teórica matemática e apresentações
  • Mariáh Lins Sena - Apresentações e redição de texto
  • Pedro Gabriel Medeiros de Lima - Apresentações e redição de texto
  • Victória Júllya Cabral da Silva - Apresentações e redição de texto

📝 Licença

Este projeto utiliza a MIT License. Veja o arquivo de LICENÇA para mais detalhes.

About

Utilize o cryptosia para gerar chaves públicas e privadas que funcionam em sintonia, garantindo segurança simplificada de mensagens sensíveis por meio da criptografia RSA.

Topics

Resources

License

Stars

Watchers

Forks