This library expands the usage of BCrypt plugins in SA:MP or open.mp for PawnPlus async-await features. You're free to use either Sryeas-Sreelal/samp-bcrypt or lassir/bcrypt-samp as both are supported and the usage is the same, so you don't need to change functions or arguments when switching between plugins.
Simply install to your project:
sampctl install Hreesang/samp-pp-bcryptInclude in your code and begin using the library:
#include <pp_bcrypt>This library doesn't automatically install the supported BCrypt plugins, so you need to install them manually. You only need to choose one of them:
CMD:hash(playerid, const params[])
{
if (isnull(params)) {
return SendClientMessage(playerid, -1, "Usage: /hash [text]");
}
new hash[BCRYPT_HASH_LENGTH];
yield 1;
await_arr(hash) BCrypt_AsyncHash(params);
new string[144];
SendClientMessage(playerid, -1, "Command: /hash [text]");
format(string, sizeof string, "Text: %s", params);
SendClientMessage(playerid, -1, string);
format(string, sizeof string, "Hash: %s", hash);
SendClientMessage(playerid, -1, string);
return 1;
}
CMD:verify(playerid, const params[])
{
new hash[BCRYPT_HASH_LENGTH];
new text[128];
if (sscanf(params, "s[*]s[128]", sizeof hash, hash, text)) {
return SendClientMessage(playerid, -1, "/verify [hash] [text]");
}
yield 1;
new bool:isVerified = bool:await BCrypt_AsyncVerify(text, hash);
new string[144];
SendClientMessage(playerid, -1, "Command: /verify [hash] [text]");
format(string, sizeof string, "Text: %s", text);
SendClientMessage(playerid, -1, string);
format(string, sizeof string, "Hash: %s", hash);
SendClientMessage(playerid, -1, string);
format(string, sizeof string, "Is Verified: %s", isVerified ? "Yes" : "No");
SendClientMessage(playerid, -1, string);
return 1;
}
- Parameters:
const input[]: input that needs to be hashed
cost = BCRYPT_COST: bcrypt cost, default toBCRYPT_COSTthat is12.- Returns:
PawnPlustask whose result is an array sizedBCRYPT_HASH_LENGTH- Remarks:
- Returns the task that needs to be awaited
- Parameters:
const input[]: plain text
const hash[]: hash that will be testified toinput.- Returns:
PawnPlustask whose result is atrueboolean if verified orfalseif not- Remarks:
- Returns the verification result
To test, simply run the package:
sampctl run- Sryeas-Sreelal and lassir for the BCrypt plugins
- IS4Code for the PawnPlus