https://github.com/theduardomaciel/cryptosia-web
A platform for generating public and private keys that work in sync, ensuring simplified security of sensitive messages through RSA encryption.
https://github.com/theduardomaciel/cryptosia-web
c cryptography emscripten nextjs react rsa rsa-cryptography tailwindcss wasm webassembly
Last synced: about 1 month ago
JSON representation
A platform for generating public and private keys that work in sync, ensuring simplified security of sensitive messages through RSA encryption.
- Host: GitHub
- URL: https://github.com/theduardomaciel/cryptosia-web
- Owner: theduardomaciel
- License: mit
- Created: 2023-08-24T02:03:58.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-10-02T22:04:23.000Z (over 1 year ago)
- Last Synced: 2025-02-01T20:11:36.207Z (3 months ago)
- Topics: c, cryptography, emscripten, nextjs, react, rsa, rsa-cryptography, tailwindcss, wasm, webassembly
- Language: TypeScript
- Homepage: https://cryptosia.vercel.app
- Size: 1.06 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
cryptosia
## 💻 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](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](https://emscripten.org/docs/getting_started/downloads.html).
- Siga as instruções de instalação do **emscripten** em [emscripten.org/docs/getting_started/downloads.html](https://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](https://emscripten.org/docs/api_reference/preamble.js.html#conversion-functions-strings-pointers-and-arrays)- 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`](http://localhost:3000) do seu navegador.
## 👥 Grupo
- [ ] [Eduardo Maciel Alexandre](https://github.com/theduardomaciel) - Frontend e backend
- [ ] [David Enéas Ferreira](https://github.com/EneasDavid) - 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](LICENSE) para mais detalhes.