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 }