Skip to content

Sreyas-Sreelal/samp-bcrypt

master
Switch branches/tags
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

SampBcrypt

Build sampctl GitHub issues GitHub pull requests GitHub pull license

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 or samp_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 builds

    make 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 player
    • callback[] - callback to execute after hashing
    • input[] - string to hash
    • cost - 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 data
    • size - 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 player
    • callback[] - callback to execute after hashing
    • input[] - text to compare with hash
    • hash[] - 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);
     }