From 1f87babb40b64892bf090e9ed1bcc71468c51015 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Wed, 2 Sep 2015 12:59:53 -0600 Subject: Implement all of hackers.git, except the group DB --- src/nshd/hackers_git/check_password.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/nshd/hackers_git/check_password.go (limited to 'src/nshd/hackers_git/check_password.go') diff --git a/src/nshd/hackers_git/check_password.go b/src/nshd/hackers_git/check_password.go new file mode 100644 index 0000000..c112641 --- /dev/null +++ b/src/nshd/hackers_git/check_password.go @@ -0,0 +1,29 @@ +package hackers_git + +import "unsafe" + +/* +#cgo LDFLAGS: -lcrypt +#define _GNU_SOURCE // for crypt_r(3) in crypt.h +#include // for free(3) +#include // for crypt_r(3) +#include // for strcmp(3) and memset(3) +int check_password(const char *password, const char *hash) +{ + int ret; + struct crypt_data data; + data.initialized = 0; + ret = (strcmp(crypt_r(password, hash, &data), hash) == 0); + memset(&data, 0, sizeof(data)); + return ret; +} +*/ +import "C" + +func check_password(password string, hash string) bool { + cpassword := C.CString(password) + defer C.free(unsafe.Pointer(cpassword)) + chash := C.CString(hash) + defer C.free(unsafe.Pointer(chash)) + return C.check_password(cpassword, chash) != 0 +} -- cgit v1.2.3-54-g00ecf