SampBcrypt
A bcrypt plugin for samp in Rust.
Installation
sampctl
If you are a sampctl user
sampctl p install Sreyas-Sreelal/samp-bcrypt
OR
- Download suitable binary files from releases for your operating system
- Add it your
plugins
folder - Add
samp_bcrypt
to server.cfg orsamp_bcrypt.so
(for linux) - Add samp_bcrypt.inc in includes folder
Building
-
Clone the repo
git clone https://github.com/Sreyas-Sreelal/samp-bcrypt.git
-
Setup testing server
make setup
-
Build using makefile
make release
for release buildsmake debug
for debug builds -
Run the tests
make run
API
-
bcrypt_hash(playerid, const callback[], const input[],cost,const args[] = "", {Float, _}:...)
playerid
- id of the playercallback[]
- callback to execute after hashinginput[]
- string to hashcost
- work factor (4 - 31)args
- custom arguments
Example
main(){ bcrypt_hash(0,"OnPassswordHash","text",BCRYPT_COST); } forward OnPassswordHash(playerid); public OnPassswordHash(playerid){ //hashing completed }
-
bcrypt_get_hash(dest[],size = sizeof(hash))
dest[]
- string to store hashed datasize
- max size of dest string
Example
main(){ bcrypt_hash(0,"OnPassswordHash","text",BCRYPT_COST); } forward OnPassswordHash(playerid); public OnPassswordHash(playerid){ new dest[BCRYPT_HASH_LENGTH]; bcrypt_get_hash(dest); printf("hash : %s",dest); }
-
bcrypt_verify(playerid,callback[],input[],hash[])
playerid
- id of the playercallback[]
- callback to execute after hashinginput[]
- text to compare with hashhash[]
- hash to compare with text
Example
main(){ bcrypt_hash(0,"OnPassswordHash","text",BCRYPT_COST); } forward OnPassswordHash(playerid); public OnPassswordHash(playerid){ new dest[BCRYPT_HASH_LENGTH]; bcrypt_get_hash(dest); bcrypt_verify(playerid,"OnPassswordVerify","text",dest); } forward OnPassswordVerify(playerid,bool:success); public OnPassswordVerify(playerid,bool:success){ //success denotes verifying was successful or not if(success){ //verfied } else{ //hash doesn't match with text } }
-
bcrypt_set_thread_limit(value)
value
- number of worker threads at a time
Example
main(){ bcrypt_set_thread_limit(3); }