• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Plugin] pawn-crypto — criptografia em Rust para SA-MP e open.mp (pré-release)
#1
pawn-crypto 0.1.0-alpha.1

Criptografia para SA-MP e open.mp, escrita em Rust
Cryptography for SA-MP and open.mp, written in Rust


Download · GitHub · Documentação



PT: Primeira pré-release do pawn-crypto. O mesmo binário funciona como plugin no SA-MP e como componente nativo (ou plugin legado) no open.mp, em Linux e Windows (32 bits).

EN: First pre-release of pawn-crypto. One binary works as a SA-MP plugin and as a native (or legacy) open.mp component, on Linux and Windows (32-bit).

O que já é suportado / Supported now
  • SHA-224, SHA-256, SHA-384, SHA-512 — PT: hash de dados, saída em hexadecimal / EN: data digests, hex output
  • HMAC-SHA-256 e HMAC-SHA-512 — PT: assinar e verificar mensagens com chave, comparação em tempo constante / EN: sign and verify, constant-time comparison
  • Argon2id — PT: hash de senhas assíncrono, com salt aleatório e resultado por callback, sem travar o servidor / EN: asynchronous password hashing, random salts, callback results, no server stall

Code:
#include <crypto> // ou <crypto_omp> para Crypto_Sha256(...) new digest[CRYPTO_SHA256_LENGTH + 1]; crypto_sha256("abc", digest);



O que já testei / What I tested

PT: Num open.mp 1.6.7 (Linux), nos modos nativo e legado: todos os exemplos compilam sem aviso, e passaram 87 checks de SHA-2/HMAC e 320 checks de Argon2id — callbacks, senha certa e errada, fila cheia, dois scripts com o mesmo callback, descarregar o script com trabalho pendente.
EN: On open.mp 1.6.7 (Linux), native and legacy modes: all examples compile cleanly; 87 SHA-2/HMAC checks and 320 Argon2id checks passed.

PT: Argon2id, na prática:
  • PT: Usa os parâmetros recomendados pela OWASP: 19 MiB, 2 iterações, 1 via. Por enquanto são fixos — não há native para ajustá-los; o verify aceita hashes com outros parâmetros, dentro de um limite
  • PT: Cada hash ou verify levou ~50 ms na minha máquina, em segundo plano; com 2 workers, cerca de 40 logins por segundo
  • PT: Confira sempre o status no callback (CRYPTO_PASSWORD_OK) antes de usar o resultado — senão uma falha vira "senha errada"
EN: Argon2id uses OWASP's recommended parameters (19 MiB, t=2, p=1), fixed for now; ~50 ms per operation on my machine, ~40 logins/s with 2 workers. Always check CRYPTO_PASSWORD_OK in the callback.

PT: Ainda sem teste: Windows, servidor SA-MP de verdade e carga real com muitos jogadores.
EN: Not tested yet: Windows, an actual SA-MP server, real load.



Quero a opinião de vocês / Feedback wanted

PT: O plugin funciona, mas é uma pré-release: preciso de testadores que usem nos próprios servidores e contem como foi. Vale qualquer relato:
  • PT: Desempenho — como se comporta no seu servidor, principalmente o Argon2id com vários jogadores logando
  • PT: API — nomes, parâmetros e callbacks fazem sentido? Algo incomoda no dia a dia?
  • PT: Custo do Argon2id — o padrão atende, ou vocês querem poder ajustar memória e iterações?
  • PT: Bugs — qualquer coisa estranha, aqui no tópico ou nas issues

EN: It works, but it's a pre-release: I need testers to run it on their own servers and report back — performance (especially Argon2id under load), API ergonomics, bugs, anything.

PT: Próximos passos: mais operações virão (como criptografia autenticada e conversões hex/Base64). Se ninguém relatar nada, sigo testando por conta própria e soltando versões novas aos poucos — mas com o retorno de vocês isso anda mais rápido e mais certo.
EN: Next steps: more operations are coming (e.g. authenticated encryption, hex/Base64). If no one reports anything, I'll keep testing on my own and releasing new versions gradually — your feedback just makes it faster and better.



PT: Projeto independente, sob Apache-2.0. Não é afiliado ao SA-MP nem ao open.mp.
EN: Independent project, Apache-2.0. Not affiliated with SA-MP or open.mp.


  Reply